Re: [PATCH 1/1] cciss: resubmit export uid, model, vendor, rev tosysfs

From: Andrew Morton
Date: Fri Apr 10 2009 - 01:21:41 EST


On Fri, 10 Apr 2009 05:08:54 +0000 Andrew Patterson <andrew.patterson@xxxxxx> wrote:

> > > + char model[MODEL_LEN + 1];
> > > ...
> > > + return snprintf(buf, MODEL_LEN + 2, "%s\n", drv->model);
> >
> > Isn't the buffer sizing wrong here? Should be MODEL_LEN+1.
> >
>
> Don't we need space for the '\0' and the '\n'?

The second arg to snprintf() tells snprintf() how large the buffer is.
That buffer should be sized to allow room for the trailing \0.

So if MODEL_LEN represents the maximum number of characters in a string
then you want:

char model[MODEL_LEN + 2]; /* Room for the \n and the \0 */
...
return snprintf(buf, sizeof(model), "%s\n", drv->model);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/