delorie.com/archives/browse.cgi | search |
X-Recipient: | archive-cygwin AT delorie DOT com |
DomainKey-Signature: | a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id |
:list-unsubscribe:list-subscribe:list-archive:list-post | |
:list-help:sender:date:from:to:subject:message-id:reply-to | |
:references:mime-version:content-type:in-reply-to; q=dns; s= | |
default; b=oPid4cWWPjT7ZWFWssS/vWyudeeNPN3xbq6z6FuLcjUN3J6o6JTvw | |
agN+gnPGVDpTv13x5Sumw/QB2zjSKzFGQdvh2nGwCIGByccGBhk6dbR/VfywnnKL | |
OOfj/viR+a6stJru36/cVldWfUuD+ax0bawuOm9eDN7sKmpCToectQ= | |
DKIM-Signature: | v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id |
:list-unsubscribe:list-subscribe:list-archive:list-post | |
:list-help:sender:date:from:to:subject:message-id:reply-to | |
:references:mime-version:content-type:in-reply-to; s=default; | |
bh=Ca1SL1F8SYhTo3QNFgaehuJRxw4=; b=cuEKksy5EgCn4te17Wvi3TMFDPCD | |
439Dni3Ml9FrYEUJI6vs9T+d1roBgXYt5fhQSbMVyf+Nnm8xEIVbP0B6pu/abZ1b | |
qKu1IFuIUjlP/kB35hdzfxmZD+W5dsAP+FPIfUGFoQw+/ngRj16IdBmNn9xEcyhU | |
LGjhtD75ZN41JJ4= | |
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
List-Id: | <cygwin.cygwin.com> |
List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
List-Archive: | <http://sourceware.org/ml/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
Sender: | cygwin-owner AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
Delivered-To: | mailing list cygwin AT cygwin DOT com |
Authentication-Results: | sourceware.org; auth=none |
X-Virus-Found: | No |
X-Spam-SWARE-Status: | No, score=-5.9 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.2 |
X-HELO: | calimero.vinschen.de |
Date: | Wed, 23 Apr 2014 17:29:40 +0200 |
From: | Corinna Vinschen <corinna-cygwin AT cygwin DOT com> |
To: | cygwin AT cygwin DOT com |
Subject: | Re: Cygwin's writev() non-standard behavior |
Message-ID: | <20140423152940.GM2339@calimero.vinschen.de> |
Reply-To: | cygwin AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
References: | <20140423140635 DOT 156430 AT gmx DOT com> |
MIME-Version: | 1.0 |
In-Reply-To: | <20140423140635.156430@gmx.com> |
User-Agent: | Mutt/1.5.21 (2010-09-15) |
--Li7ckgedzMh1NgdW Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Apr 23 16:06, qq qq wrote: > writev() does not accept count 0 but it should >=20 > $ cat test.c > #include <stdio.h> > #include <errno.h> > #include <stdlib.h> > #include <string.h> > #include <sys/uio.h> >=20 > int main() > { > =C2=A0struct iovec vec; >=20 > =C2=A0memset(&vec, 0, sizeof(vec)); > =C2=A0if (writev(1, &vec, 0) < 0) > =C2=A0 =C2=A0perror("writev"); > =C2=A0return 0; > } >=20 > Linux: > $ gcc -Wall test.c > $ ./a.out >=20 > Cygwin: > $ gcc -Wall test.c > $ ./a.exe > writev: Invalid argument >=20 > This behavior is buggy per: >=20 > =C2=A0 =C2=A0 =C2=A0 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 <=3D 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=20 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 --=20 Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat --Li7ckgedzMh1NgdW Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJTV9xkAAoJEPU2Bp2uRE+g7PEP/0nkAOznZRoMiONH/g5+vIGS 74F9fK5ix6Cox1YfRArBAUZrkcl8cw2e5f2ZXRdoMXVnwwhwv9t8LBUSwLTgvyTQ gzsiRAy5UplYJ7qDOnkV6y2DvuL60y+K5YFudoOHwKc0Zqc8KXoSfQinMfklZETl g0mzE/8ibWFEC+mrqWW9Y8kJ1R669tFA9vstz0txH8bcHI9W7hQ0jaobp1W+EA8e 5CxS62c13P/R+NVCHsAjmp1hKkgjIBlGOmBnaOZ4e1NdJdTbGewAn6D3HuO2XTXS BChymezC1kml3Q8wASwXewIRgFUmzm2lBMz6XDLdrAV4finyiwa86D8BzxBK4C9V ywyPcWOKgqGdwc+YawjPsORATxLXCpQZaCYqG1Oox4oaq7LgZtW3MtNx9MzeYpx6 B6mCfEO8PDacV5Xtawc8p+Q3DxLBeRUYdYog2SnMfWwWSs2gyP5EtJoyFFpUbbbk GP5z7XBOUYbCP6Qk/oJFybAtBsSPzJFuS1bsmEBQUf7S5Q04zzQ2aIB1caurOKbG WqTWt5L8WImvt+8x6hcxDuVdBZ5kgZmfmP8gLbqiTCKynJM5e95jqeCO7t0rswsE fqnJ63jRYDrkb9cN6L93kI+7ciFuduwBNqmt9i4/rcDr+y+OIJCJjksk/i1psPwz RNi1muomAylE7mf4zwEm =nv49 -----END PGP SIGNATURE----- --Li7ckgedzMh1NgdW--
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |