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 <syeon.hw...@samsung.com>
---
  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 <mre...@redhat.com>

Reply via email to