fix error checking of asprintf
authorFrank Meerkötter <frank@meerkoetter.org>
Mon, 3 Dec 2012 18:29:16 +0000 (19:29 +0100)
committerFelix Fietkau <nbd@openwrt.org>
Mon, 3 Dec 2012 18:46:37 +0000 (19:46 +0100)
see man asprintf
  [...]
  RETURN VALUE
   When  successful, these  functions return the number of bytes printed, just like sprintf(3).
   If memory allocation wasn't possible, or some other error occurs, these functions will return -1,
   and the contents of strp is undefined.

Signed-off-by: Frank Meerkötter <frank@meerkoetter.org>
ubus.c

diff --git a/ubus.c b/ubus.c
index 7b8593099b217af597899a5be4cb8f50cca0ca5c..d6d41889ef2a501715d506aea19281f7c49d44b7 100644 (file)
--- a/ubus.c
+++ b/ubus.c
@@ -727,8 +727,7 @@ netifd_ubus_add_interface(struct interface *iface)
        struct ubus_object *obj = &iface->ubus;
        char *name = NULL;
 
-       asprintf(&name, "%s.interface.%s", main_object.name, iface->name);
-       if (!name)
+       if (asprintf(&name, "%s.interface.%s", main_object.name, iface->name) == -1)
                return;
 
        obj->name = name;