summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafał Miłecki <rafal@milecki.pl>2019-12-13 11:05:11 +0100
committerRafał Miłecki <rafal@milecki.pl>2019-12-13 14:48:31 +0100
commit5ea47fe35e5db7b231393d21515daeaef9da8498 (patch)
tree6155e6d32121bbe6b398ecfceb38e929faff6e85
parentf438552ec8e777c271f5c2ec6713d9567eafa5b6 (diff)
downloadfstools-5ea47fe35e5db7b231393d21515daeaef9da8498.tar.gz
blockd: fix vlist memory corruption
vlist_add() expects key to point a persistent memory as it doesn't make its copy. Passing blob_attr of current message was resulting in undefined/random behavior including list corruption and possible crashes. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
-rw-r--r--blockd.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/blockd.c b/blockd.c
index 88fe168..7375b2b 100644
--- a/blockd.c
+++ b/blockd.c
@@ -255,7 +255,7 @@ block_hotplug(struct ubus_context *ctx, struct ubus_object *obj,
strcpy(_name, devname);
device->target = __target;
strcpy(__target, target);
- vlist_add(&devices, &device->node, blobmsg_get_string(data[MOUNT_DEVICE]));
+ vlist_add(&devices, &device->node, device->name);
}
vlist_flush(&devices);