fix default __strnlen_user macro
The existing __strnlen_user macro simply resolved to strnlen. However, the count returned by strnlen_user should include the NULL byte. This patch fixes the __strnlen_user macro to include the NULL byte in the count. Signed-off-by: Mark Salter <msalter@redhat.com> Acked-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
parent
3ee72ca992
commit
830f5800ac
1 changed files with 6 additions and 1 deletions
|
|
@ -289,9 +289,14 @@ strncpy_from_user(char *dst, const char __user *src, long count)
|
||||||
* Return 0 on exception, a value greater than N if too long
|
* Return 0 on exception, a value greater than N if too long
|
||||||
*/
|
*/
|
||||||
#ifndef __strnlen_user
|
#ifndef __strnlen_user
|
||||||
#define __strnlen_user strnlen
|
#define __strnlen_user(s, n) (strnlen((s), (n)) + 1)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Unlike strnlen, strnlen_user includes the nul terminator in
|
||||||
|
* its returned count. Callers should check for a returned value
|
||||||
|
* greater than N as an indication the string is too long.
|
||||||
|
*/
|
||||||
static inline long strnlen_user(const char __user *src, long n)
|
static inline long strnlen_user(const char __user *src, long n)
|
||||||
{
|
{
|
||||||
if (!access_ok(VERIFY_READ, src, 1))
|
if (!access_ok(VERIFY_READ, src, 1))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue