2011-10-17 15:56:05

by Frederic Danis

[permalink] [raw]
Subject: [PATCH v3] fix build

src/eir.c: In function 'eir_parse':
src/eir.c:72: error: 'name_len' may be used uninitialized in this function

and

thermometer/thermometer.c: In function 'destroy_char':
thermometer/thermometer.c:79: error: implicit declaration of function 'g_slist_free_full'
---
src/eir.c | 2 +-
thermometer/thermometer.c | 5 +++++
2 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/src/eir.c b/src/eir.c
index 8772191..8ada364 100644
--- a/src/eir.c
+++ b/src/eir.c
@@ -69,7 +69,7 @@ int eir_parse(struct eir_data *eir, uint8_t *eir_data)
uuid_t service;
char *uuid_str;
const char *name = NULL;
- size_t name_len;
+ size_t name_len = 0;
unsigned int i;

eir->flags = -1;
diff --git a/thermometer/thermometer.c b/thermometer/thermometer.c
index 7621926..653ec76 100644
--- a/thermometer/thermometer.c
+++ b/thermometer/thermometer.c
@@ -20,6 +20,10 @@
*
*/

+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
#include <gdbus.h>
#include <errno.h>
#include <bluetooth/uuid.h>
@@ -34,6 +38,7 @@
#include "att.h"
#include "gatt.h"
#include "thermometer.h"
+#include "glib-helper.h"

#define THERMOMETER_INTERFACE "org.bluez.Thermometer"

--
1.7.1



2011-10-19 07:35:06

by Andrei Emeltchenko

[permalink] [raw]
Subject: Re: [PATCH v3] fix build

Hi Marcel,

On Tue, Oct 18, 2011 at 09:36:13AM -0700, Marcel Holtmann wrote:
> > > src/eir.c: In function 'eir_parse':
> > > src/eir.c:72: error: 'name_len' may be used uninitialized in this function
> > >
> > > and
> > >
> > > thermometer/thermometer.c: In function 'destroy_char':
> > > thermometer/thermometer.c:79: error: implicit declaration of function 'g_slist_free_full'
> > > ---
> > > src/eir.c | 2 +-
> > > thermometer/thermometer.c | 5 +++++
> > > 2 files changed, 6 insertions(+), 1 deletions(-)
> > >
> > > diff --git a/src/eir.c b/src/eir.c
> > > index 8772191..8ada364 100644
> > > --- a/src/eir.c
> > > +++ b/src/eir.c
> > > @@ -69,7 +69,7 @@ int eir_parse(struct eir_data *eir, uint8_t *eir_data)
> > > uuid_t service;
> > > char *uuid_str;
> > > const char *name = NULL;
> > > - size_t name_len;
> > > + size_t name_len = 0;
> >
> > BTW: shall we change build flags otherwise bluez is not building anymore.
> >
> > make
> > make --no-print-directory all-am
> > CC src/eir.o
> > cc1: warnings being treated as errors
> > src/eir.c: In function ‘eir_parse’:
> > src/eir.c:73:9: error: ‘name_len’ may be used uninitialized in this
> > function
> > make[1]: *** [src/eir.o] Ошибка 1
> > make: *** [all] Ошибка 2
>
> it builds fine if you install a recent distro with a recent gcc.

What is the recent gcc I need to have? I have Ubuntu 11.04 with gcc:

gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)

Actually several weeks ago new Ubuntu was introduced 11.10, hopefully they
have right gcc :-)

Best regards
Andrei Emeltchenko

2011-10-18 16:36:13

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH v3] fix build

Hi Andrei,

> > src/eir.c: In function 'eir_parse':
> > src/eir.c:72: error: 'name_len' may be used uninitialized in this function
> >
> > and
> >
> > thermometer/thermometer.c: In function 'destroy_char':
> > thermometer/thermometer.c:79: error: implicit declaration of function 'g_slist_free_full'
> > ---
> > src/eir.c | 2 +-
> > thermometer/thermometer.c | 5 +++++
> > 2 files changed, 6 insertions(+), 1 deletions(-)
> >
> > diff --git a/src/eir.c b/src/eir.c
> > index 8772191..8ada364 100644
> > --- a/src/eir.c
> > +++ b/src/eir.c
> > @@ -69,7 +69,7 @@ int eir_parse(struct eir_data *eir, uint8_t *eir_data)
> > uuid_t service;
> > char *uuid_str;
> > const char *name = NULL;
> > - size_t name_len;
> > + size_t name_len = 0;
>
> BTW: shall we change build flags otherwise bluez is not building anymore.
>
> make
> make --no-print-directory all-am
> CC src/eir.o
> cc1: warnings being treated as errors
> src/eir.c: In function ‘eir_parse’:
> src/eir.c:73:9: error: ‘name_len’ may be used uninitialized in this
> function
> make[1]: *** [src/eir.o] Ошибка 1
> make: *** [all] Ошибка 2

it builds fine if you install a recent distro with a recent gcc.

Regards

Marcel



2011-10-18 08:19:55

by Andrei Emeltchenko

[permalink] [raw]
Subject: Re: [PATCH v3] fix build

On Mon, Oct 17, 2011 at 05:56:05PM +0200, Frédéric Danis wrote:
> src/eir.c: In function 'eir_parse':
> src/eir.c:72: error: 'name_len' may be used uninitialized in this function
>
> and
>
> thermometer/thermometer.c: In function 'destroy_char':
> thermometer/thermometer.c:79: error: implicit declaration of function 'g_slist_free_full'
> ---
> src/eir.c | 2 +-
> thermometer/thermometer.c | 5 +++++
> 2 files changed, 6 insertions(+), 1 deletions(-)
>
> diff --git a/src/eir.c b/src/eir.c
> index 8772191..8ada364 100644
> --- a/src/eir.c
> +++ b/src/eir.c
> @@ -69,7 +69,7 @@ int eir_parse(struct eir_data *eir, uint8_t *eir_data)
> uuid_t service;
> char *uuid_str;
> const char *name = NULL;
> - size_t name_len;
> + size_t name_len = 0;

BTW: shall we change build flags otherwise bluez is not building anymore.

make
make --no-print-directory all-am
CC src/eir.o
cc1: warnings being treated as errors
src/eir.c: In function ‘eir_parse’:
src/eir.c:73:9: error: ‘name_len’ may be used uninitialized in this
function
make[1]: *** [src/eir.o] Ошибка 1
make: *** [all] Ошибка 2

Best regards
Andrei Emeltchenko


> unsigned int i;
>
> eir->flags = -1;
> diff --git a/thermometer/thermometer.c b/thermometer/thermometer.c
> index 7621926..653ec76 100644
> --- a/thermometer/thermometer.c
> +++ b/thermometer/thermometer.c
> @@ -20,6 +20,10 @@
> *
> */
>
> +#ifdef HAVE_CONFIG_H
> +#include <config.h>
> +#endif
> +
> #include <gdbus.h>
> #include <errno.h>
> #include <bluetooth/uuid.h>
> @@ -34,6 +38,7 @@
> #include "att.h"
> #include "gatt.h"
> #include "thermometer.h"
> +#include "glib-helper.h"
>
> #define THERMOMETER_INTERFACE "org.bluez.Thermometer"
>
> --
> 1.7.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

2011-10-17 16:00:24

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH v3] fix build

Hi Frederic,

> src/eir.c: In function 'eir_parse':
> src/eir.c:72: error: 'name_len' may be used uninitialized in this function
>
> and
>
> thermometer/thermometer.c: In function 'destroy_char':
> thermometer/thermometer.c:79: error: implicit declaration of function 'g_slist_free_full'

please split this into two patches.

The fix for thermometer/thermometer.c is fine, but for src/eir.c I think
it is better to rewrite that function with a more clean and simpler
version.

Regards

Marcel