ryantimwilson / rpms / systemd

Forked from rpms/systemd a month ago
Clone
Zbigniew Jędrzejewski-Szmek 62fe94
From 8bf13eb1e02b9977ae1cd331ae5dc7305a305a09 Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek 62fe94
From: Daniel Mack <daniel@zonque.org>
Zbigniew Jędrzejewski-Szmek 62fe94
Date: Tue, 7 Oct 2014 12:10:06 +0200
Zbigniew Jędrzejewski-Szmek 62fe94
Subject: [PATCH] sd-bus: check return value of vasprintf
Zbigniew Jędrzejewski-Szmek 62fe94
Zbigniew Jędrzejewski-Szmek 62fe94
Check for OOM situations when vasprintf() returns < 0 in bus_error_setfv().
Zbigniew Jędrzejewski-Szmek 62fe94
Zbigniew Jędrzejewski-Szmek 62fe94
Spotted by coverity.
Zbigniew Jędrzejewski-Szmek 62fe94
---
Zbigniew Jędrzejewski-Szmek 62fe94
 src/libsystemd/sd-bus/bus-error.c | 9 +++++++--
Zbigniew Jędrzejewski-Szmek 62fe94
 1 file changed, 7 insertions(+), 2 deletions(-)
Zbigniew Jędrzejewski-Szmek 62fe94
Zbigniew Jędrzejewski-Szmek 62fe94
diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c
Zbigniew Jędrzejewski-Szmek 62fe94
index abdfd73204..5ca974a191 100644
Zbigniew Jędrzejewski-Szmek 62fe94
--- a/src/libsystemd/sd-bus/bus-error.c
Zbigniew Jędrzejewski-Szmek 62fe94
+++ b/src/libsystemd/sd-bus/bus-error.c
Zbigniew Jędrzejewski-Szmek 62fe94
@@ -194,8 +194,13 @@ int bus_error_setfv(sd_bus_error *e, const char *name, const char *format, va_li
Zbigniew Jędrzejewski-Szmek 62fe94
                 return -ENOMEM;
Zbigniew Jędrzejewski-Szmek 62fe94
         }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
-        if (format)
Zbigniew Jędrzejewski-Szmek 62fe94
-                vasprintf((char**) &e->message, format, ap);
Zbigniew Jędrzejewski-Szmek 62fe94
+        if (format) {
Zbigniew Jędrzejewski-Szmek 62fe94
+                int r;
Zbigniew Jędrzejewski-Szmek 62fe94
+
Zbigniew Jędrzejewski-Szmek 62fe94
+                r = vasprintf((char**) &e->message, format, ap);
Zbigniew Jędrzejewski-Szmek 62fe94
+                if (r < 0)
Zbigniew Jędrzejewski-Szmek 62fe94
+                        return -ENOMEM;
Zbigniew Jędrzejewski-Szmek 62fe94
+        }
Zbigniew Jędrzejewski-Szmek 62fe94
 
Zbigniew Jędrzejewski-Szmek 62fe94
         e->_need_free = 1;
Zbigniew Jędrzejewski-Szmek 62fe94