summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJianhui Zhao2024-05-15 02:45:13 +0000
committerHauke Mehrtens2024-09-22 21:36:46 +0000
commitb4dfa3b33c349be1bf74a64c3dd24c8dff98dc3c (patch)
tree2a0abecfa68a807bd23ab6cf0bc628c15287395d
parentb0aecfaa4fd710df2dec9ceb90c3a6ebd97dcb7e (diff)
downloadopenwrt-b4dfa3b33c349be1bf74a64c3dd24c8dff98dc3c.tar.gz
hostapd: fix `UPDATE_VAL` fail in `uc_hostapd_iface_start`
If the `intval` obtained from `info` is indeed 0, it cannot be set to `conf`. Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com> Link: https://github.com/openwrt/openwrt/pull/15495 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
-rw-r--r--package/network/services/hostapd/src/src/ap/ucode.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/package/network/services/hostapd/src/src/ap/ucode.c b/package/network/services/hostapd/src/src/ap/ucode.c
index c8a2b13a28..a5630d7eaa 100644
--- a/package/network/services/hostapd/src/src/ap/ucode.c
+++ b/package/network/services/hostapd/src/src/ap/ucode.c
@@ -533,10 +533,12 @@ uc_hostapd_iface_start(uc_vm_t *vm, size_t nargs)
return NULL;
#define UPDATE_VAL(field, name) \
- if ((intval = ucv_int64_get(ucv_object_get(info, name, NULL))) && \
- !errno && intval != conf->field) do { \
- conf->field = intval; \
- changed = true; \
+ do { \
+ intval = ucv_int64_get(ucv_object_get(info, name, NULL)); \
+ if (!errno && intval != conf->field) { \
+ conf->field = intval; \
+ changed = true; \
+ } \
} while(0)
conf = iface->conf;