fix buffer overflow in interface data handling
authorFelix Fietkau <nbd@openwrt.org>
Fri, 4 May 2012 13:09:51 +0000 (15:09 +0200)
committerFelix Fietkau <nbd@openwrt.org>
Fri, 4 May 2012 13:09:51 +0000 (15:09 +0200)
interface.c

index fbed513..78dcd83 100644 (file)
@@ -118,7 +118,7 @@ interface_add_data(struct interface *iface, const struct blob_attr *data)
        if (!blobmsg_check_attr(data, true))
                return UBUS_STATUS_INVALID_ARGUMENT;
 
        if (!blobmsg_check_attr(data, true))
                return UBUS_STATUS_INVALID_ARGUMENT;
 
-       n = calloc(1, sizeof(*data) + blob_pad_len(data));
+       n = calloc(1, sizeof(*n) + blob_pad_len(data));
        memcpy(n->data, data, blob_pad_len(data));
        n->node.key = blobmsg_name(data);
 
        memcpy(n->data, data, blob_pad_len(data));
        n->node.key = blobmsg_name(data);