From: Jianhui Zhao Date: Wed, 15 May 2024 02:45:13 +0000 (+0800) Subject: hostapd: fix `UPDATE_VAL` fail in `uc_hostapd_iface_start` X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=b4dfa3b33c349be1bf74a64c3dd24c8dff98dc3c;p=openwrt%2Fstaging%2Fansuel.git 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 --- 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;