Re: [PATCH 1/2] scan: fix invalid read when canceling an ongoing scan

Daniel Bond
2024-09-03T17:03:52Z

[-- Attachment #1: Type: text/plain, Size: 1914 bytes --]

Sounds good. I'm not sure where to send it with git send-email, but
I've attached the patch against current HEAD of iwd. If you want me to
do something else just point me in the right direction.

Thanks!

Br, Daniel

On Tue, 3 Sept 2024 at 13:44, James Prestwood <prestwoj@gmail.com> wrote:
>
> Hi Daniel,
>
> On 9/1/24 11:34 PM, Daniel Bond wrote:
> > Hi,
> >
> > There was reported an issue reported in the Arch Linux issue tracker,
> > which I also experienced on my hardware after upgrading iwd to version
> > 2.20. What happens is that iwd constantly segfaults with messages like
> > this:
> >
> > [ 279.974994] Code: 00 00 00 00 f3 0f 1e fa 55 48 89 e5 41 57 41 56
> > 41 55 41 54 53 48 83 ec 18 48 89 4d c8 4c 89 45 c0 48 85 ff 0f 84 f3
> > 00 00 00 <80> 7e 20 00 49 89 f5 0f 85 e6 00 00 00 48 83 fa 01 48 89 fb 49 89
> > [ 280.685109] iwd[1648]: segfault at 32 ip 0000788413f05de6 sp
> > 00007ffeb3d023d0 error 4 in libell.so.0.0.2[1ade6,788413efb000+57000]
> > lik
> > ely on CPU 1 (core 1, socket 0)
> > [ 280.685125] Code: 00 00 00 00 f3 0f 1e fa 55 48 89 e5 41 57 41 56
> > 41 55 41 54 53 48 83 ec 18 48 89 4d c8 4c 89 45 c0 48 85 ff 0f 84 f3
> > 00 00 00 <80> 7e 20 00 49 89 f5 0f 85 e6 00 00 00 48 83 fa 01 48 89 fb 49 89
> > [ 290.573368] iwd[1686]: segfault at 32 ip 00007c0b35d49de6 sp
> > 00007fff86c509d0 error 4 in libell.so.0.0.2[1ade6,7c0b35d3f000+57000]
> > lik
> > ely on CPU 2 (core 0, socket 0)
> >
> > The issue seems to be resolved by checking that results->sr is set:
> >
> > - if (!results->sr->canceled)
> > + if (results->sr && !results->sr->canceled)
> The patch on the arch issue report looks good to me. Can we go ahead and
> just send that patch with git send-email?
> >
> > More information reported in the arch linux gitlab issuetracker, under
> > gitlab archlinux org /archlinux/packaging/packages/iwd/-/issues/5 .
> >
> > In advance, thanks.
> >
> > Br, Daniel Bond

[-- Attachment #2: 0001-scan-add-guard-to-check-that-results-sr-is-set-to-av.patch --]
[-- Type: text/x-patch, Size: 880 bytes --]

From acfde32f65c23b00a0893b64b8bc0ab8eeb39143 Mon Sep 17 00:00:00 2001
From: Daniel Bond <danielbondno@gmail.com>
Date: Tue, 3 Sep 2024 18:52:56 +0200
Subject: [PATCH] scan: add guard to check that results->sr is set to avoid
segfault issue.

Patch created by loqs in Archlinux issue: https://gitlab.archlinux.org/archlinux/packaging/packages/iwd/-/issues/5

As mentioned in list: https://lore.kernel.org/iwd/4083bf62-20d2-46e6-bfae-c926c2acbfe9@gmail.com/
---
src/scan.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/scan.c b/src/scan.c
index debdeb1f..e5360d1b 100644
--- a/src/scan.c
+++ b/src/scan.c
@@ -2056,7 +2056,7 @@ static void get_survey_done(void *user_data)

sc->get_survey_cmd_id = 0;

- if (!results->sr->canceled)
+ if (results->sr && !results->sr->canceled)
get_results(results);
else
get_scan_done(user_data);
--
2.46.0