diff options
| author | Felix Fietkau <nbd@nbd.name> | 2023-09-12 13:32:40 +0200 |
|---|---|---|
| committer | Felix Fietkau <nbd@nbd.name> | 2023-09-12 14:09:58 +0200 |
| commit | ea1787b7bcf537ffddad9aae3aab8381942c24cc (patch) | |
| tree | 7fa171787523b7583b5b174e5d888289cdb67cd5 /package/network | |
| parent | 36a9f8449c8c892dada8d313af4fcfc38a1ba08b (diff) | |
| download | upstream-ea1787b7bcf537ffddad9aae3aab8381942c24cc.tar.gz upstream-ea1787b7bcf537ffddad9aae3aab8381942c24cc.tar.bz2 upstream-ea1787b7bcf537ffddad9aae3aab8381942c24cc.zip | |
hostapd: clear ucode interface/bss resource pointers
Avoids potential use-after-free bugs
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'package/network')
| -rw-r--r-- | package/network/services/hostapd/src/src/utils/ucode.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/package/network/services/hostapd/src/src/utils/ucode.c b/package/network/services/hostapd/src/src/utils/ucode.c index 896ef46e1f6..2beeb9a7ff6 100644 --- a/package/network/services/hostapd/src/src/utils/ucode.c +++ b/package/network/services/hostapd/src/src/utils/ucode.c @@ -298,9 +298,15 @@ uc_value_t *wpa_ucode_registry_get(uc_value_t *reg, int idx) uc_value_t *wpa_ucode_registry_remove(uc_value_t *reg, int idx) { uc_value_t *val = wpa_ucode_registry_get(reg, idx); + void **dataptr; - if (val) - ucv_array_set(reg, idx - 1, NULL); + if (!val) + return NULL; + + ucv_array_set(reg, idx - 1, NULL); + dataptr = ucv_resource_dataptr(val, NULL); + if (dataptr) + *dataptr = NULL; return val; } |
