buf(9) woes: when does bcopy do nothing at all?
Poul-Henning Kamp
phk at phk.freebsd.dk
Fri Apr 26 08:33:04 UTC 2019
--------
In message <CAOtMX2gdw+eQQU_-DC+EgimbCyw6ynbX1haGLUmn1dApk4rMZw at mail.gmail.com>, Alan Somers writes:
>How is it possible that bcopy() doesn't affect its output array at all?
That conclusion does not follow from your example:
>bcopy(cp, iov->iov_base, cnt);
>r = memcmp(cp, iov->iov_base, cnt);
>if (r)
> printf("uiomove: miscompare\n");
If [cp:cp+cnt] and [iov_base:iov_base+cnt] overlap the bcopy result
is undefined.
Try memmove instead ?
--
Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG | TCP/IP since RFC 956
FreeBSD committer | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.
More information about the freebsd-hackers
mailing list