diff options
author | Rafał Miłecki <rafal@milecki.pl> | 2019-12-13 11:05:11 +0100 |
---|---|---|
committer | Rafał Miłecki <rafal@milecki.pl> | 2019-12-13 14:48:31 +0100 |
commit | 5ea47fe35e5db7b231393d21515daeaef9da8498 (patch) | |
tree | 6155e6d32121bbe6b398ecfceb38e929faff6e85 | |
parent | f438552ec8e777c271f5c2ec6713d9567eafa5b6 (diff) | |
download | fstools-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.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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); |