2014-12-19 12:13:01

by Andrei Emeltchenko

[permalink] [raw]
Subject: [PATCH] shared/gap: Fix memory leak in gap

From: Andrei Emeltchenko <[email protected]>

Allocated irk memory was never assigned.
---
src/shared/gap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/shared/gap.c b/src/shared/gap.c
index 19059e8..3536c1c 100644
--- a/src/shared/gap.c
+++ b/src/shared/gap.c
@@ -276,5 +276,5 @@ bool bt_gap_add_peer_irk(struct bt_gap *gap, uint8_t addr_type,
memcpy(irk->addr, addr, 6);
memcpy(irk->key, key, 16);

- return true;
+ return queue_push_tail(gap->irk_list, irk);
}
--
2.1.0



2014-12-19 12:43:10

by Andrei Emeltchenko

[permalink] [raw]
Subject: Re: [PATCH] shared/gap: Fix memory leak in gap

Hi Szymon,

On Fri, Dec 19, 2014 at 01:29:39PM +0100, Szymon Janc wrote:
> Hi Andrei,
>
> On Friday 19 of December 2014 14:13:01 Andrei Emeltchenko wrote:
> > From: Andrei Emeltchenko <[email protected]>
> >
> > Allocated irk memory was never assigned.
> > ---
> > src/shared/gap.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/src/shared/gap.c b/src/shared/gap.c
> > index 19059e8..3536c1c 100644
> > --- a/src/shared/gap.c
> > +++ b/src/shared/gap.c
> > @@ -276,5 +276,5 @@ bool bt_gap_add_peer_irk(struct bt_gap *gap, uint8_t addr_type,
> > memcpy(irk->addr, addr, 6);
> > memcpy(irk->key, key, 16);
> >
> > - return true;
> > + return queue_push_tail(gap->irk_list, irk);
> > }
>
> For sanity this should free irk if push failed.

Yes, I have sent new version.

Best regards
Andrei Emeltchenko

2014-12-19 12:29:39

by Szymon Janc

[permalink] [raw]
Subject: Re: [PATCH] shared/gap: Fix memory leak in gap

Hi Andrei,

On Friday 19 of December 2014 14:13:01 Andrei Emeltchenko wrote:
> From: Andrei Emeltchenko <[email protected]>
>
> Allocated irk memory was never assigned.
> ---
> src/shared/gap.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/shared/gap.c b/src/shared/gap.c
> index 19059e8..3536c1c 100644
> --- a/src/shared/gap.c
> +++ b/src/shared/gap.c
> @@ -276,5 +276,5 @@ bool bt_gap_add_peer_irk(struct bt_gap *gap, uint8_t addr_type,
> memcpy(irk->addr, addr, 6);
> memcpy(irk->key, key, 16);
>
> - return true;
> + return queue_push_tail(gap->irk_list, irk);
> }

For sanity this should free irk if push failed.

--
Best regards,
Szymon Janc