2014-03-13 12:31:57

by Andrei Emeltchenko

[permalink] [raw]
Subject: [PATCH] android/handsfree: Check service class is not zero

From: Andrei Emeltchenko <[email protected]>

Fixes static analyzers NULL dereference warnings. The similar check is
done in src/device.c in line 2959.
---
android/handsfree.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/android/handsfree.c b/android/handsfree.c
index b71c28e..7167938 100644
--- a/android/handsfree.c
+++ b/android/handsfree.c
@@ -1152,6 +1152,9 @@ static void sdp_hsp_search_cb(sdp_list_t *recs, int err, gpointer data)
goto fail;
}

+ if (!classes)
+ goto fail;
+
if (sdp_get_access_protos(recs->data, &protos) < 0) {
error("handsfree: unable to get access protocols from record");
sdp_list_free(classes, free);
@@ -1242,6 +1245,9 @@ static void sdp_hfp_search_cb(sdp_list_t *recs, int err, gpointer data)
goto fail;
}

+ if (!classes)
+ goto fail;
+
if (sdp_get_access_protos(recs->data, &protos) < 0) {
error("handsfree: unable to get access protocols from record");
sdp_list_free(classes, free);
--
1.8.3.2



2014-03-27 20:48:50

by Szymon Janc

[permalink] [raw]
Subject: Re: [PATCH] android/handsfree: Check service class is not zero

Hi Andrei,

On Thursday 13 March 2014 14:31:57 Andrei Emeltchenko wrote:
> From: Andrei Emeltchenko <[email protected]>
>
> Fixes static analyzers NULL dereference warnings. The similar check is
> done in src/device.c in line 2959.
> ---
> android/handsfree.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/android/handsfree.c b/android/handsfree.c
> index b71c28e..7167938 100644
> --- a/android/handsfree.c
> +++ b/android/handsfree.c
> @@ -1152,6 +1152,9 @@ static void sdp_hsp_search_cb(sdp_list_t *recs, int
> err, gpointer data) goto fail;
> }
>
> + if (!classes)
> + goto fail;
> +
> if (sdp_get_access_protos(recs->data, &protos) < 0) {
> error("handsfree: unable to get access protocols from record");
> sdp_list_free(classes, free);
> @@ -1242,6 +1245,9 @@ static void sdp_hfp_search_cb(sdp_list_t *recs, int
> err, gpointer data) goto fail;
> }
>
> + if (!classes)
> + goto fail;
> +
> if (sdp_get_access_protos(recs->data, &protos) < 0) {
> error("handsfree: unable to get access protocols from record");
> sdp_list_free(classes, free);

Applied with some modifications so that we log error in case classes are NULL.
Thanks.

--
Szymon K. Janc
[email protected]