summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau2024-06-14 12:17:57 +0000
committerHauke Mehrtens2024-07-08 19:13:25 +0000
commit80a36594f9623dc471c6d866d3e688da39c143be (patch)
treea9b7c6cdd183a61671434eeae24e5959f1ee5257
parentaa27bd70870d8c0992314ab26fc31c5bf7460aa4 (diff)
downloadopenwrt-80a36594f9623dc471c6d866d3e688da39c143be.tar.gz
hostapd: use strdup on string passed to hostapd_add_iface
The data is modified within hostapd_add_iface Signed-off-by: Felix Fietkau <nbd@nbd.name> (cherry picked from commit 032d3fcf7a861b140435b6507b2b0b66361c92f8) Link: https://github.com/openwrt/openwrt/pull/15898 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
-rw-r--r--package/network/services/hostapd/src/src/ap/ucode.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/package/network/services/hostapd/src/src/ap/ucode.c b/package/network/services/hostapd/src/src/ap/ucode.c
index af97091be5..80c01b4b9b 100644
--- a/package/network/services/hostapd/src/src/ap/ucode.c
+++ b/package/network/services/hostapd/src/src/ap/ucode.c
@@ -86,12 +86,16 @@ static uc_value_t *
uc_hostapd_add_iface(uc_vm_t *vm, size_t nargs)
{
uc_value_t *iface = uc_fn_arg(0);
+ char *data;
int ret;
if (ucv_type(iface) != UC_STRING)
return ucv_int64_new(-1);
- ret = hostapd_add_iface(interfaces, ucv_string_get(iface));
+ data = strdup(ucv_string_get(iface));
+ ret = hostapd_add_iface(interfaces, data);
+ free(data);
+
hostapd_ucode_update_interfaces();
return ucv_int64_new(ret);