2012-02-01 09:05:15

by David Laight

[permalink] [raw]
Subject: RE: [PATCH 01/16] eicon: fix -Warray-bounds warning



> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Danny Kukawka
> Sent: 31 January 2012 17:04
> To: Karsten Keil
> Cc: Ben Hutchings; Armin Schindler;
> [email protected]; [email protected]; Karsten Keil
> Subject: Re: [PATCH 01/16] eicon: fix -Warray-bounds warning
>
> On Dienstag, 31. Januar 2012, Karsten Keil wrote:
> > On Mon, Jan 30, 2012 at 11:09:32PM +0000, Ben Hutchings wrote:
> > > On Mon, 2012-01-30 at 23:00 +0100, Danny Kukawka wrote:
> > > > Fix for a -Warray-bounds warning. mixer_notify_update() tries to
> > > > write to ((CAPI_MSG *) msg)->info.facility_req.structs[3] while
> > > > structs is defined as byte structs[1], define structs[1] as
> > > > structs[4].
> > >
> > > I suspect that all the 'byte structs[1];' fields defined
> in that header
> > > are actually variable-length arrays. In that case, there
> may be no
> > > reasonable bound you can specify.
> >
> > Yes, exactely, the structs is a ASN1 coded message so it
> can have any len.
>
> So, how can we get rid of the compiler warning then?

Try defining it as a 'variable sized array' - byte structs[0].

David


2012-02-01 12:53:09

by Danny Kukawka

[permalink] [raw]
Subject: Re: [PATCH 01/16] eicon: fix -Warray-bounds warning

On Mittwoch, 1. Februar 2012, David Laight wrote:
> > -----Original Message-----
> > From: [email protected]
> > [mailto:[email protected]] On Behalf Of Danny Kukawka
> > Sent: 31 January 2012 17:04
> > To: Karsten Keil
> > Cc: Ben Hutchings; Armin Schindler;
> > [email protected]; [email protected]; Karsten Keil
> > Subject: Re: [PATCH 01/16] eicon: fix -Warray-bounds warning
> >
> > On Dienstag, 31. Januar 2012, Karsten Keil wrote:
> > > On Mon, Jan 30, 2012 at 11:09:32PM +0000, Ben Hutchings wrote:
> > > > On Mon, 2012-01-30 at 23:00 +0100, Danny Kukawka wrote:
> > > > > Fix for a -Warray-bounds warning. mixer_notify_update() tries to
> > > > > write to ((CAPI_MSG *) msg)->info.facility_req.structs[3] while
> > > > > structs is defined as byte structs[1], define structs[1] as
> > > > > structs[4].
> > > >
> > > > I suspect that all the 'byte structs[1];' fields defined
> >
> > in that header
> >
> > > > are actually variable-length arrays. In that case, there
> >
> > may be no
> >
> > > > reasonable bound you can specify.
> > >
> > > Yes, exactely, the structs is a ASN1 coded message so it
> >
> > can have any len.
> >
> > So, how can we get rid of the compiler warning then?
>
> Try defining it as a 'variable sized array' - byte structs[0].

Okay, that works. I'll send an updated patch.

Thanks

Danny
> David

2012-02-02 18:25:28

by Karsten Keil

[permalink] [raw]
Subject: Re: [PATCH 01/16] eicon: fix -Warray-bounds warning

On Wed, Feb 01, 2012 at 01:52:18PM +0100, Danny Kukawka wrote:
> On Mittwoch, 1. Februar 2012, David Laight wrote:
> > > -----Original Message-----
> > > From: [email protected]
> > > [mailto:[email protected]] On Behalf Of Danny Kukawka
> > > Sent: 31 January 2012 17:04
> > > To: Karsten Keil
> > > Cc: Ben Hutchings; Armin Schindler;
> > > [email protected]; [email protected]; Karsten Keil
> > > Subject: Re: [PATCH 01/16] eicon: fix -Warray-bounds warning
> > >
> > > On Dienstag, 31. Januar 2012, Karsten Keil wrote:
> > > > On Mon, Jan 30, 2012 at 11:09:32PM +0000, Ben Hutchings wrote:
> > > > > On Mon, 2012-01-30 at 23:00 +0100, Danny Kukawka wrote:
> > > > > > Fix for a -Warray-bounds warning. mixer_notify_update() tries to
> > > > > > write to ((CAPI_MSG *) msg)->info.facility_req.structs[3] while
> > > > > > structs is defined as byte structs[1], define structs[1] as
> > > > > > structs[4].
> > > > >
> > > > > I suspect that all the 'byte structs[1];' fields defined
> > >
> > > in that header
> > >
> > > > > are actually variable-length arrays. In that case, there
> > >
> > > may be no
> > >
> > > > > reasonable bound you can specify.
> > > >
> > > > Yes, exactely, the structs is a ASN1 coded message so it
> > >
> > > can have any len.
> > >
> > > So, how can we get rid of the compiler warning then?
> >
> > Try defining it as a 'variable sized array' - byte structs[0].
>
> Okay, that works. I'll send an updated patch.
>

Nice, I did not know this way.

Karsten