J. Bruce Fields schrieb am Mittwoch, den 14. November um 17:08 Uhr: > commit 8688bcb10bd006111b1b46c23a27081ea359e140 > Author: J. Bruce Fields <bfields@xxxxxxxxxx> > Date: Wed Nov 14 10:48:05 2012 -0500 > > svcrpc: Revert "sunrpc/cache.h: replace simple_strtoul" > > Commit bbf43dc888833ac0539e437dbaeb28bfd4fbab9f "sunrpc/cache.h: replace > simple_strtoul" introduced new range-checking which could cause get_int > to fail on unsigned integers to large to be represented as an int. > > We could parse them as unsigned instead--but it turns out svcgssd is > actually passing down "-1" in some cases. Which is perhaps stupid, but > there's nothing we can do about it now. > > So just revert back to the previous "sloppy" behavior that accepts > either representation. > > Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx> > > diff --git a/include/linux/sunrpc/cache.h b/include/linux/sunrpc/cache.h > index f792794..5dc9ee4 100644 > --- a/include/linux/sunrpc/cache.h > +++ b/include/linux/sunrpc/cache.h > @@ -217,6 +217,8 @@ 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) > @@ -224,9 +226,11 @@ static inline int get_int(char **bpp, int *anint) > if (len == 0) > return -ENOENT; > > - if (kstrtoint(buf, 0, anint)) > + rv = simple_strtol(buf, &ep, 0); > + if (*ep) > return -EINVAL; > > + *anint = rv; > return 0; > } OK, so this can be marked as resolved (for now) on my todo list, right? Will this go into 3.6.7 and of course 3.7? Sven -- "Those who do not understand Unix are condemned to reinvent it, poorly" (Henry Spencer) /me is giggls@ircnet, http://sven.gegg.us/ on the Web -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html