From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36268) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xlvha-0001US-4c for qemu-devel@nongnu.org; Wed, 05 Nov 2014 03:12:30 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XlvhV-0004WI-Bp for qemu-devel@nongnu.org; Wed, 05 Nov 2014 03:12:26 -0500 Received: from mx1.redhat.com ([209.132.183.28]:52294) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XlvhV-0004WD-4v for qemu-devel@nongnu.org; Wed, 05 Nov 2014 03:12:21 -0500 Message-ID: <5459DBE1.30509@redhat.com> Date: Wed, 05 Nov 2014 09:12:17 +0100 From: Max Reitz MIME-Version: 1.0 References: <1415174992-13246-1-git-send-email-syeon.hwang@samsung.com> In-Reply-To: <1415174992-13246-1-git-send-email-syeon.hwang@samsung.com> Content-Type: text/plain; charset=iso-8859-15; format=flowed Content-Transfer-Encoding: 7bit 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: SeokYeon Hwang , qemu-devel@nongnu.org Cc: paolo.bonzini@gmail.com, armbru@redhat.com On 2014-11-05 at 09:09, SeokYeon Hwang wrote: > Negative type of errno like -ERRNO is used a lot by developers. Therefore, error_set_errno() is modified to deal with a negative type of os_error. > (Negative type is used at pcie_cap_slot_hotplug_common() in hw/pci/pcie.c) > > Signed-off-by: SeokYeon Hwang > --- > util/error.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/util/error.c b/util/error.c > index 2ace0d8..5db00c9 100644 > --- a/util/error.c > +++ b/util/error.c > @@ -68,7 +68,7 @@ void error_set_errno(Error **errp, int os_errno, ErrorClass err_class, > va_start(ap, fmt); > msg1 = g_strdup_vprintf(fmt, ap); > if (os_errno != 0) { > - err->msg = g_strdup_printf("%s: %s", msg1, strerror(os_errno)); > + err->msg = g_strdup_printf("%s: %s", msg1, strerror(abs(os_errno))); > g_free(msg1); > } else { > err->msg = msg1; This is utterly broken and we should fix all callers instead. ...But I like it. Reviewed-by: Max Reitz