From b4dfa3b33c349be1bf74a64c3dd24c8dff98dc3c Mon Sep 17 00:00:00 2001 From: Jianhui Zhao Date: Wed, 15 May 2024 10:45:13 +0800 Subject: [PATCH] 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 Link: https://github.com/openwrt/openwrt/pull/15495 Signed-off-by: Hauke Mehrtens --- package/network/services/hostapd/src/src/ap/ucode.c | 10 ++++++---- 1 file 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; -- 2.30.2