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:
parent
dffce2150e
commit
44e0a832f2
17
bin/dd/dd.c
17
bin/dd/dd.c
@ -338,6 +338,21 @@ speed_limit(void)
|
||||
t_prev = t_now;
|
||||
}
|
||||
|
||||
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
|
||||
dd_in(void)
|
||||
{
|
||||
@ -438,7 +453,7 @@ dd_in(void)
|
||||
++st.swab;
|
||||
--n;
|
||||
}
|
||||
swab(in.dbp, in.dbp, (size_t)n);
|
||||
swapbytes(in.dbp, (size_t)n);
|
||||
}
|
||||
|
||||
in.dbp += in.dbrcnt;
|
||||
|
Loading…
Reference in New Issue
Block a user