Loading net/core/pktgen.c +4 −6 Original line number Diff line number Diff line Loading @@ -729,16 +729,14 @@ static int hex32_arg(const char __user *user_buffer, unsigned long maxlen, *num = 0; for (; i < maxlen; i++) { int value; char c; *num <<= 4; if (get_user(c, &user_buffer[i])) return -EFAULT; if ((c >= '0') && (c <= '9')) *num |= c - '0'; else if ((c >= 'a') && (c <= 'f')) *num |= c - 'a' + 10; else if ((c >= 'A') && (c <= 'F')) *num |= c - 'A' + 10; value = hex_to_bin(c); if (value >= 0) *num |= value; else break; } Loading net/core/utils.c +7 −6 Original line number Diff line number Diff line Loading @@ -92,18 +92,19 @@ EXPORT_SYMBOL(in_aton); static inline int xdigit2bin(char c, int delim) { int val; if (c == delim || c == '\0') return IN6PTON_DELIM; if (c == ':') return IN6PTON_COLON_MASK; if (c == '.') return IN6PTON_DOT; if (c >= '0' && c <= '9') return (IN6PTON_XDIGIT | IN6PTON_DIGIT| (c - '0')); if (c >= 'a' && c <= 'f') return (IN6PTON_XDIGIT | (c - 'a' + 10)); if (c >= 'A' && c <= 'F') return (IN6PTON_XDIGIT | (c - 'A' + 10)); val = hex_to_bin(c); if (val >= 0) return val | IN6PTON_XDIGIT | (val < 10 ? IN6PTON_DIGIT : 0); if (delim == -1) return IN6PTON_DELIM; return IN6PTON_UNKNOWN; Loading Loading
net/core/pktgen.c +4 −6 Original line number Diff line number Diff line Loading @@ -729,16 +729,14 @@ static int hex32_arg(const char __user *user_buffer, unsigned long maxlen, *num = 0; for (; i < maxlen; i++) { int value; char c; *num <<= 4; if (get_user(c, &user_buffer[i])) return -EFAULT; if ((c >= '0') && (c <= '9')) *num |= c - '0'; else if ((c >= 'a') && (c <= 'f')) *num |= c - 'a' + 10; else if ((c >= 'A') && (c <= 'F')) *num |= c - 'A' + 10; value = hex_to_bin(c); if (value >= 0) *num |= value; else break; } Loading
net/core/utils.c +7 −6 Original line number Diff line number Diff line Loading @@ -92,18 +92,19 @@ EXPORT_SYMBOL(in_aton); static inline int xdigit2bin(char c, int delim) { int val; if (c == delim || c == '\0') return IN6PTON_DELIM; if (c == ':') return IN6PTON_COLON_MASK; if (c == '.') return IN6PTON_DOT; if (c >= '0' && c <= '9') return (IN6PTON_XDIGIT | IN6PTON_DIGIT| (c - '0')); if (c >= 'a' && c <= 'f') return (IN6PTON_XDIGIT | (c - 'a' + 10)); if (c >= 'A' && c <= 'F') return (IN6PTON_XDIGIT | (c - 'A' + 10)); val = hex_to_bin(c); if (val >= 0) return val | IN6PTON_XDIGIT | (val < 10 ? IN6PTON_DIGIT : 0); if (delim == -1) return IN6PTON_DELIM; return IN6PTON_UNKNOWN; Loading