This is the mail archive of the cygwin mailing list for the Cygwin project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Apr 23 16:06, qq qq wrote: > writev() does not accept count 0 but it should > > $ cat test.c > #include <stdio.h> > #include <errno.h> > #include <stdlib.h> > #include <string.h> > #include <sys/uio.h> > > int main() > { > Âstruct iovec vec; > > Âmemset(&vec, 0, sizeof(vec)); > Âif (writev(1, &vec, 0) < 0) > Â Âperror("writev"); > Âreturn 0; > } > > Linux: > $ gcc -Wall test.c > $ ./a.out > > Cygwin: > $ gcc -Wall test.c > $ ./a.exe > writev: Invalid argument > > This behavior is buggy per: > > Â Â Â EINVAL ... the vector count count is less than zero or greater than the permitted maximum ... I applied a patch to CVS. There's a central function (check_iovec) checking the validity of the iovec input and this function returns EINVAL if iovlen is <= 0, the total number of bytes otherwise. However, check_iovec works fine with iovlen 0 and all the callers (readv/writev/recvmsg/sendmsg) are handling a 0 return from this function, too, so a 0 return is nothing to worry about. Please given the next snapshot from http://cygwin.com/snapshots/ a try. Thanks, Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat
Attachment:
pgpq8Jpvcta7f.pgp
Description: PGP signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |