[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