From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47967) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xm0On-0007Y4-K6 for qemu-devel@nongnu.org; Wed, 05 Nov 2014 08:13:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xm0Oc-0003x2-I1 for qemu-devel@nongnu.org; Wed, 05 Nov 2014 08:13:21 -0500 Received: from mailout2.samsung.com ([203.254.224.25]:31661) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xm0Oc-0003wq-8S for qemu-devel@nongnu.org; Wed, 05 Nov 2014 08:13:10 -0500 Received: from epcpsbgm1.samsung.com (epcpsbgm1 [203.254.230.26]) by mailout2.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0NEK003WTI1V8660@mailout2.samsung.com> for qemu-devel@nongnu.org; Wed, 05 Nov 2014 22:13:07 +0900 (KST) From: SeokYeon Hwang References: <1415174992-13246-1-git-send-email-syeon.hwang@samsung.com> <5459DBE1.30509@redhat.com> <545A0288.4010905@gnu.org> <545A05CC.4050109@redhat.com> <545A1BAE.4070802@gnu.org> In-reply-to: <545A1BAE.4070802@gnu.org> Date: Wed, 05 Nov 2014 22:13:09 +0900 Message-id: <040a01cff8fa$3ef06c90$bcd145b0$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7bit Content-language: ko Subject: Re: [Qemu-devel] [PATCH] error: fixed error_set_errno() to deal with a negative type of os_error. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: 'Paolo Bonzini' , 'Max Reitz' , qemu-devel@nongnu.org Cc: paolo.bonzini@gmail.com, armbru@redhat.com > -----Original Message----- > From: Paolo Bonzini [mailto:paolo.bonzini@gmail.com] On Behalf Of Paolo > Bonzini > Sent: Wednesday, November 05, 2014 9:45 PM > To: Max Reitz; SeokYeon Hwang; qemu-devel@nongnu.org > Cc: armbru@redhat.com; paolo.bonzini@gmail.com > Subject: Re: [PATCH] error: fixed error_set_errno() to deal with a > negative type of os_error. > > > > On 05/11/2014 12:11, Max Reitz wrote: > > > > Of course I understand, but this patch doesn't make matters worse, as > > long as there are not systems which have negative values for errno > > (which I think we generally assume not to exist throughout qemu). > > That's why I'm fine with it. We should fix the callers but I don't see > > why we shouldn't apply this patch as well. > > > > A similar issue already came up and led to commit b276d2499, where > > callers of error_setg_errno() assumed that it would not clobber errno, > > so we fixed some of the callers but also applied that commit which > > just saves errno because there's no reason not to. > > I think side effect are a different matter than misuse of QEMU. > > There are "only" 157 calls to error_setg_errno; 67 use "errno" as the > argument, and 4 use an explicit errno value (one of them is the wrong - > EBUSY). The other 86 seem correct and should not be hard to audit. > > Let's instead add an assertion check to error_setg_errno. > > Paolo I have expected to come out several opinions about this patch. The use of negative errno on "strerror()" was obviously wrong. But that does not mean it is wrong to use the negative errno on "error_set_errno()". The reason that I chose this one among the solutions is to change function specification. I think it seems good to us to respect the tradition of the developers that use negative errno. But if error_set_errno() has strict specification - so, we must not change it's spec - I agree with Paolo's opinion.