forked from Imagelibrary/rtems
dd(1): Use a local swapbytes() function.
swab(3) has restrict qualifiers for src and dst. Avoid relying on undefined overlapping swab behavior. Obtained From: OpenBSD
This commit is contained in:
@@ -334,6 +334,21 @@ getfdtype(rtems_shell_dd_globals* globals, IO *io)
|
|||||||
io->flags |= ISSEEK;
|
io->flags |= ISSEEK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
swapbytes(void *v, size_t len)
|
||||||
|
{
|
||||||
|
unsigned char *p = v;
|
||||||
|
unsigned char t;
|
||||||
|
|
||||||
|
while (len > 1) {
|
||||||
|
t = p[0];
|
||||||
|
p[0] = p[1];
|
||||||
|
p[1] = t;
|
||||||
|
p += 2;
|
||||||
|
len -= 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dd_in(rtems_shell_dd_globals* globals)
|
dd_in(rtems_shell_dd_globals* globals)
|
||||||
{
|
{
|
||||||
@@ -431,7 +446,7 @@ dd_in(rtems_shell_dd_globals* globals)
|
|||||||
++st.swab;
|
++st.swab;
|
||||||
--n;
|
--n;
|
||||||
}
|
}
|
||||||
swab(in.dbp, in.dbp, (size_t)n);
|
swapbytes(in.dbp, (size_t)n);
|
||||||
}
|
}
|
||||||
|
|
||||||
in.dbp += in.dbrcnt;
|
in.dbp += in.dbrcnt;
|
||||||
|
|||||||
Reference in New Issue
Block a user