2012-01-10 04:20:29

by Sujith Manoharan

[permalink] [raw]
Subject: [PATCH 3/4] ath6kl: Initialize a variable properly

This prevents 'comp_pktq' from being used in an
incorrect manner.

Signed-off-by: Sujith Manoharan <[email protected]>
---
drivers/net/wireless/ath/ath6kl/htc.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/ath/ath6kl/htc.c b/drivers/net/wireless/ath/ath6kl/htc.c
index b017022..2d72190 100644
--- a/drivers/net/wireless/ath/ath6kl/htc.c
+++ b/drivers/net/wireless/ath/ath6kl/htc.c
@@ -2062,6 +2062,7 @@ int ath6kl_htc_rxmsg_pending_handler(struct htc_target *target,
enum htc_endpoint_id id;
int n_fetched = 0;

+ INIT_LIST_HEAD(&comp_pktq);
*num_pkts = 0;

/*
--
1.7.8.3



2012-01-12 12:05:07

by Sujith Manoharan

[permalink] [raw]
Subject: Re: [PATCH 3/4] ath6kl: Initialize a variable properly

Kalle Valo wrote:
> But there's also the same init later in the function, inside the while loop:
>
> INIT_LIST_HEAD(&rx_pktq);
> INIT_LIST_HEAD(&comp_pktq);
>
> Is this intentional?

I think so.

If we break out of the loop on the first iteration because of the condition
"if (id >= ENDPOINT_MAX)", then comp_pktq ends up being used without having
been initialized.

Sujith

2012-01-12 11:41:25

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH 3/4] ath6kl: Initialize a variable properly

On 01/10/2012 06:23 AM, Sujith Manoharan wrote:
> This prevents 'comp_pktq' from being used in an
> incorrect manner.
>
> Signed-off-by: Sujith Manoharan <[email protected]>
> ---
> drivers/net/wireless/ath/ath6kl/htc.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath6kl/htc.c b/drivers/net/wireless/ath/ath6kl/htc.c
> index b017022..2d72190 100644
> --- a/drivers/net/wireless/ath/ath6kl/htc.c
> +++ b/drivers/net/wireless/ath/ath6kl/htc.c
> @@ -2062,6 +2062,7 @@ int ath6kl_htc_rxmsg_pending_handler(struct htc_target *target,
> enum htc_endpoint_id id;
> int n_fetched = 0;
>
> + INIT_LIST_HEAD(&comp_pktq);


But there's also the same init later in the function, inside the while loop:

INIT_LIST_HEAD(&rx_pktq);
INIT_LIST_HEAD(&comp_pktq);

Is this intentional?

Kalle