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
@ -217,8 +217,6 @@ extern int qword_get(char **bpp, char *dest, int bufsize);
|
|||||||
static inline int get_int(char **bpp, int *anint)
|
static inline int get_int(char **bpp, int *anint)
|
||||||
{
|
{
|
||||||
char buf[50];
|
char buf[50];
|
||||||
char *ep;
|
|
||||||
int rv;
|
|
||||||
int len = qword_get(bpp, buf, sizeof(buf));
|
int len = qword_get(bpp, buf, sizeof(buf));
|
||||||
|
|
||||||
if (len < 0)
|
if (len < 0)
|
||||||
@ -226,11 +224,9 @@ static inline int get_int(char **bpp, int *anint)
|
|||||||
if (len == 0)
|
if (len == 0)
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
|
|
||||||
rv = simple_strtol(buf, &ep, 0);
|
if (kstrtoint(buf, 0, anint))
|
||||||
if (*ep)
|
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
*anint = rv;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user