On Tue, 2020-07-21 at 09:20 +0800, Xiongfeng Wang wrote:
> On 2020/7/21 3:52, Corey Minyard wrote:
> > On Mon, Jul 20, 2020 at 10:03:25AM +0800, Xiongfeng Wang wrote:
> > > When I cat some ipmi_watchdog parameters by sysfs, it displays as
> > > follows. It's better to add a newline for easy reading.
[]
> > > diff --git a/drivers/char/ipmi/ipmi_watchdog.c 
> > > b/drivers/char/ipmi/ipmi_watchdog.c
[]
> > > @@ -232,12 +232,16 @@ static int set_param_str(const char *val, const 
> > > struct kernel_param *kp)
> > >  static int get_param_str(char *buffer, const struct kernel_param *kp)
> > >  {
> > >   action_fn fn = (action_fn) kp->arg;
> > > - int       rv;
> > > + int rv, len;
> > >  
> > >   rv = fn(NULL, buffer);
> > >   if (rv)
> > >           return rv;
> > > - return strlen(buffer);
> > > +
> > > + len = strlen(buffer);
> > > + len += sprintf(buffer + len, "\n");
> > 
> > sprintf is kind of overkill to stick a \n on the end of a line.  How
> > about:
> > 
> >     buffer[len++] = '\n';
> > 
> > Since you are returning the length, you shouldn't need to nil terminate
> > the string.

You never quite know for sure so I suggest making
the string null terminated just in case.

i.e.:

        buffer[len++] = '\n';
        buffer[len] = 0;


Reply via email to