Messages in this thread | | | From | Azeem Shaikh <> | Date | Mon, 10 Jul 2023 14:06:44 -0400 | Subject | Re: [PATCH] kobject: Replace strlcpy with strscpy |
| |
On Mon, Jul 10, 2023 at 9:13 AM David Laight <David.Laight@aculab.com> wrote: > > > int len; > > > > - len = strlcpy(&env->buf[env->buflen], subsystem, buffer_size); > > - if (len >= buffer_size) { > > + len = strscpy(&env->buf[env->buflen], subsystem, buffer_size); > > + if (len < 0) { > > pr_warn("init_uevent_argv: buffer size of %d too small, needed %d\n", > > buffer_size, len); > > return -ENOMEM; > > The size in the error message is now wrong.
Thanks for catching this.
> It has to be said that mostly all the strings that get copied > in the kernel are '\0' terminated - so maybe it is all moot. > OTOH printing (at least some of) the string that didn't fit > is a lot more useful than its length.
How about printing out strlen(subsystem) along with the entire value of @subsystem? So that the warn reads:
pr_warn("init_uevent_argv: buffer size of %d too small for %s, needed %d\n", buffer_size, subsystem, strlen(subsystem));
Does that seem better?
| |