From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MHHit-0002z3-A7 for qemu-devel@nongnu.org; Thu, 18 Jun 2009 09:32:11 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MHHio-0002sG-D8 for qemu-devel@nongnu.org; Thu, 18 Jun 2009 09:32:10 -0400 Received: from [199.232.76.173] (port=60926 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MHHio-0002s6-8B for qemu-devel@nongnu.org; Thu, 18 Jun 2009 09:32:06 -0400 Received: from mx2.redhat.com ([66.187.237.31]:53404) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MHHin-0006W0-O2 for qemu-devel@nongnu.org; Thu, 18 Jun 2009 09:32:06 -0400 Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n5IDW4M1029889 for ; Thu, 18 Jun 2009 09:32:04 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n5IDW4Em031875 for ; Thu, 18 Jun 2009 09:32:04 -0400 Received: from doriath (vpn-10-106.bos.redhat.com [10.16.10.106]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n5IDW2kc029399 for ; Thu, 18 Jun 2009 09:32:03 -0400 Date: Thu, 18 Jun 2009 10:31:56 -0300 From: Luiz Capitulino Subject: Re: [Qemu-devel] [PATCH v3] avoid compilation warning/errors on up to date compilers/glibc Message-ID: <20090618103156.327a4b48@doriath> In-Reply-To: <200906172041.14849.jcd@tribudubois.net> References: <28684080.110231245246057655.JavaMail.root@srv-05.w4a.fr> <200906171503.52825.paul@codesourcery.com> <200906172041.14849.jcd@tribudubois.net> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org On Wed, 17 Jun 2009 20:41:14 +0200 "Jean-Christophe Dubois" wrote: > Le mercredi 17 juin 2009 16:03:51, vous avez =C3=A9crit : > > > > This is no more correct than before. read() can return EINTR > > > > and that should be handled appropriately. Elsewhere, read() > > > > can return partial results and we ought to handle that properly. > > > > > > It handles all cases except EINTR. And in the actual code base > > > EINTR and __all other__ error cases are not handled. So as of > > > today EINTR is not handled propely (as well as all other error > > > cases). So this consider EINTR as an error when it could be > > > handled in a nicer way. Previously no ERRORS were considered as > > > an error. What is best? > > > > The original is the lesser wevil because it is obviously wrong. > > Your patch looks like it does error handling and avoids generates > > warnings, but still does not work correctty. > > > > > > Using -D_FORTIFY_SOURCES=3D0 will eliminate these warnings. If > > > > we're going to fix these things, we should fix them properly. > > > > > > It just hides the problem and fix nothing but the compilation. > > > > Your patch just makes the bug more subtle and harder to spot. >=20 > I guess this is a matter of point of view.=20 I don't think it's a point of view, today we have a warning and we know something is not ok. With this patch we won't have the warning anymore but the solution is not what it should be. Can't we have wrappers to read() and write() that does the right thing and use them everywhere? > Is it harder to find a bug when: > 1) you are silencing compilation warning/errors AND ignoring all > runtime errors (also silencing future warnings/errors). My impression is that Anthony's tip is for you get it built, not a final solution to the problem. > or 2) You are considering recoverable errors as non recoverable > errors. qemu_read() and qemu_write() could handle both. > BTW are you sure that EINTR and EAGAIN are correctly handled all over > the source code? What about partial read/write? I have no idea, but if they are not they should be fixed then.