[Skiboot] [PATCH] Fix FTBFS with -Werror=format-overflow

Frédéric Bonnard frediz at linux.vnet.ibm.com
Wed Jan 31 23:48:37 AEDT 2018


Hi Andrew,

On Tue, 30 Jan 2018 13:28:24 +1100, Andrew Donnellan <andrew.donnellan at au1.ibm.com> wrote:
> On 26/01/18 00:14, Frédéric Bonnard wrote:
> > i2c.c fails to compile with gcc7 and -Werror=format-overflow used in
> > Debian Unstable and Ubuntu 18.04 :
> > 
> > i2c.c: In function ‘i2c_init’:
> > i2c.c:211:15: error: ‘%s’ directive writing up to 255 bytes into a
> > region of size 236 [-Werror=format-overflow=]
> > 
> > We just make sure we never write more than what the destination can
> > store.
> > 
> > Signed-off-by: Frédéric Bonnard <frediz at linux.vnet.ibm.com>
> > ---
> >   external/opal-prd/i2c.c | 8 +++++++-
> >   1 file changed, 7 insertions(+), 1 deletion(-)
> > 
> > diff --git a/external/opal-prd/i2c.c b/external/opal-prd/i2c.c
> > index ba4b3c85..dca303e4 100644
> > --- a/external/opal-prd/i2c.c
> > +++ b/external/opal-prd/i2c.c
> > @@ -234,7 +234,13 @@ void i2c_init(void)
> >   			continue;
> >   
> >   		/* Get bus name */
> > -		sprintf(dpath, SYSFS "/class/i2c-dev/%s/name", devent->d_name);
> > +		if (snprintf(dpath, NAME_MAX, SYSFS "/class/i2c-dev/%s/name",
> > +					devent->d_name) < 0 ) {
> 
> If the string is too long, snprintf() will truncate and return number of 
> bytes written, not a negative error code.

indeed.. what was I thinking.

> > +			pr_log(LOG_ERR, "I2C: bus name longer than NAME_MAX : "
> 
> Strictly speaking, the bus name doesn't have to be longer than NAME_MAX, 
> it's the entire path.
> 
> I suspect that dpath should actually be of length PATH_MAX...

That would make much more sense actually. Thanks for your help.

F.

> 
> Andrew
> 
> > +					SYSFS "/class/i2c-dev/%s/name",
> > +					devent->d_name);
> > +			return;
> > +		}
> >   		f = fopen(dpath, "r");
> >   		if (!f) {
> >   			pr_log(LOG_NOTICE, "I2C: Can't open %s: %m, skipping.",
> > 
> 
> -- 
> Andrew Donnellan              OzLabs, ADL Canberra
> andrew.donnellan at au1.ibm.com  IBM Australia Limited
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/skiboot/attachments/20180131/872a5409/attachment-0001.sig>


More information about the Skiboot mailing list