Message ID | 20231114171455.1108856-1-denkenz@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [01/11] netdev: Fix obtaining reason code from deauth frames | expand |
Context | Check | Description |
---|---|---|
tedd_an/pre-ci_am | success | Success |
prestwoj/iwd-alpine-ci-fetch | success | Fetch PR |
prestwoj/iwd-ci-fetch | success | Fetch PR |
prestwoj/iwd-ci-gitlint | success | GitLint |
prestwoj/iwd-ci-makedistcheck | success | Make Distcheck |
prestwoj/iwd-alpine-ci-makedistcheck | success | Make Distcheck |
prestwoj/iwd-ci-build | success | Build - Configure |
prestwoj/iwd-alpine-ci-build | success | Build - Configure |
prestwoj/iwd-ci-makecheckvalgrind | success | Make Check w/Valgrind |
prestwoj/iwd-ci-makecheck | success | Make Check |
prestwoj/iwd-ci-clang | success | clang PASS |
prestwoj/iwd-alpine-ci-makecheckvalgrind | success | Make Check w/Valgrind |
prestwoj/iwd-alpine-ci-makecheck | success | Make Check |
prestwoj/iwd-ci-incremental_build | success | Incremental Build with patches |
prestwoj/iwd-alpine-ci-incremental_build | success | Incremental Build with patches |
prestwoj/iwd-ci-testrunner | success | test-runner PASS |
On 11/14/23 11:14, Denis Kenzior wrote: > The reason code from deauthentication frame was being obtained as a > uint8_t instead of a uint16_t. The value was only ever used in an > informational statement. Since the value was in little endian, only the > first 8 bits of the reason code were obtained. Fix that. > > Fixes: 2bebb4bdc7ee ("netdev: Handle deauth frames prior to association") > --- > src/netdev.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > All applied. Regards, -Denis
diff --git a/src/netdev.c b/src/netdev.c index 867126583215..49854b16d846 100644 --- a/src/netdev.c +++ b/src/netdev.c @@ -1264,6 +1264,7 @@ static void netdev_deauthenticate_event(struct l_genl_msg *msg, uint16_t type, len; const void *data; const struct mmpdu_header *hdr = NULL; + const struct mmpdu_deauthentication *deauth; uint16_t reason_code; l_debug(""); @@ -1298,7 +1299,8 @@ static void netdev_deauthenticate_event(struct l_genl_msg *msg, if (!memcmp(hdr->address_2, netdev->addr, sizeof(netdev->addr))) return; - reason_code = l_get_u8(mmpdu_body(hdr)); + deauth = mmpdu_body(hdr); + reason_code = L_LE16_TO_CPU(deauth->reason_code); l_info("deauth event, src="MAC" dest="MAC" bssid="MAC" reason=%u", MAC_STR(hdr->address_2), MAC_STR(hdr->address_1),