sunrpc/cache.h: replace simple_strtoul
This patch replaces the usage of simple_strtoul with kstrtoint in get_int(), since the simple_str* family doesn't account for overflow and is deprecated. Also, in this specific case, the long from strtol is silently converted to an int by the caller. As Joe Perches <joe@perches.com> suggested, this patch also removes the redundant temporary variable rv, since kstrtoint() will not write to anint unless it's successful. Cc: Joe Perches <joe@perches.com> Signed-off-by: Eldad Zack <eldad@fogrefinery.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
parent
d9c2ede63c
commit
bbf43dc888
1 changed files with 1 additions and 5 deletions
|
@ -217,8 +217,6 @@ extern int qword_get(char **bpp, char *dest, int bufsize);
|
|||
static inline int get_int(char **bpp, int *anint)
|
||||
{
|
||||
char buf[50];
|
||||
char *ep;
|
||||
int rv;
|
||||
int len = qword_get(bpp, buf, sizeof(buf));
|
||||
|
||||
if (len < 0)
|
||||
|
@ -226,11 +224,9 @@ static inline int get_int(char **bpp, int *anint)
|
|||
if (len == 0)
|
||||
return -ENOENT;
|
||||
|
||||
rv = simple_strtol(buf, &ep, 0);
|
||||
if (*ep)
|
||||
if (kstrtoint(buf, 0, anint))
|
||||
return -EINVAL;
|
||||
|
||||
*anint = rv;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue