Hi,

2011/5/3 Kay Sievers <[email protected]>
>
> On Mon, May 2, 2011 at 05:18, [email protected] <[email protected]> wrote:
> >  loop_read/write will try to fill/read 'nbytes' of caller supplying buffer.
> > This argument is currently of type size_t, which is always true
> > for loop quit condition "while (nbytes > 0)", hence we change it to
> > type ssize_t here.
>
> Where would that be useful? It's the size of the buffer supplied to
> the function, just like read() itself has.
Note "while(nbytes > 0)" is equal to "while(true)", if the supplying
buffer is smaller than contents of a file, read syscall may overwrite
memory after 'buf', or return with errno EFAULT.

>
> > This also helps to detect passed-in 'nbytes' of value -1
> > for example.
>
> Detect what that way, a negative sizeof()?
This 'nbytes' maybe a variable, and happens to be -1? Also, it is
symmetric if the range of return value(number of bytes read) is equal
to the range of 'nbytes'.




--
Regards,
- cee1
_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to