This is from a Smatch check I'm writing.
strncpy_from_user() returns -EFAULT on error so the first change just
silences a warning but doesn't change how the code works.
The other change is a bug fix because install_thread_keyring_to_cred()
can return a variety of errors such as -EINVAL, -EEXIST, -ENOMEM or
-EKEYREVOKED.
Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
ret = strncpy_from_user(type, _type, len);
if (ret < 0)
ret = strncpy_from_user(type, _type, len);
if (ret < 0)
if (ret == 0 || ret >= len)
return -EINVAL;
if (ret == 0 || ret >= len)
return -EINVAL;
return old_setting;
error:
abort_creds(new);
return old_setting;
error:
abort_creds(new);
} /* end keyctl_set_reqkey_keyring() */
} /* end keyctl_set_reqkey_keyring() */