On Thu, 2009-10-22 at 19:48 +0200, Jakub Hrozek wrote:
> A more serious bug I see in files.c:
> + while ((cnt = read(ifd, buf, sizeof(buf))) > 0) {
> + while (cnt > 0) {
> + written = write(ofd, buf, (size_t)cnt);
> + if (written == -1) {
> + ret = errno;
> + DEBUG(1, ("Cannot write() to source file '%s': [%d][%
> s].\n",
> + dst, ret, strerror(ret)));
> + goto fail;
> + }
> + cnt -= written;
> + }
> + }
>
> You should write like this:
> written = write(ofd, buf + written, cnt);
Fixed, although a little differently than you proposed
Right, because I had a bug there too. Sigh, code like this is always
prone to errors. Thanks for your work.
Ack.
Martin