fix buffer overflow in interface data handling
[project/netifd.git] / 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);