kobject_uevent: remove warning in init_uevent_argv()
Subsystems (2)
Greg Kroah-Hartman
maintainerPATCH 1/1 kobject_uevent: remove warning in init_uevent_argv()
syzbot can trigger the WARN() in init_uevent_argv() which isn't the nicest as the code does properly recover and handle the error. So change the WARN() call to pr_warn() and provide some more information on what the buffer size that was needed.
Reported-by [email protected]
Cc "Rafael J. Wysocki" <[email protected]>
Signed-off-by Greg Kroah-Hartman <[email protected]>
--- lib/kobject_uevent.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
lib/kobject_uevent.c +5 -4
@@ -251,12 +251,13 @@ static int kobj_usermode_filter(struct kobject *kobj)static int init_uevent_argv (struct kobj_uevent_env *env,const char *subsystem) { +int buffer_size =sizeof (env->buf) - env->buflen;int len; - len =strlcpy (&env->buf[env->buflen], subsystem, -sizeof (env->buf) - env->buflen); -if (len >= (sizeof (env->buf) - env->buflen)) { -WARN (1 ,KERN_ERR "init_uevent_argv: buffer size too small\n" ); + len =strlcpy (&env->buf[env->buflen], subsystem, buffer_size); +if (len >= buffer_size) { +pr_warn ("init_uevent_argv: buffer size of %d too small, needed %d\n" , + buffer_size, len);return -ENOMEM ; }
Signature · 1 line
2.31.1