* lib/vsprintf.c:3615 vsscanf() error: uninitialized symbol 'next'.
@ 2022-05-07 11:39 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-05-07 11:39 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 23118 bytes --]
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Richard Fitzgerald <rf@opensource.cirrus.com>
CC: Petr Mladek <pmladek@suse.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 4b97bac0756a81cda5afd45417a99b5bccdcff67
commit: 900fdc4573766dd43b847b4f54bd4a1ee2bc7360 lib: vsprintf: Fix handling of number field widths in vsscanf
date: 12 months ago
:::::: branch date: 14 hours ago
:::::: commit date: 12 months ago
config: openrisc-randconfig-m031-20220506 (https://download.01.org/0day-ci/archive/20220507/202205071941.vVWoJU45-lkp(a)intel.com/config)
compiler: or1k-linux-gcc (GCC) 11.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=900fdc4573766dd43b847b4f54bd4a1ee2bc7360
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 900fdc4573766dd43b847b4f54bd4a1ee2bc7360
# save the config file
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 ARCH=openrisc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
All errors (new ones prefixed by >>):
or1k-linux-ld: arch/openrisc/kernel/entry.o: in function `_external_irq_handler':
>> (.text+0x83c): undefined reference to `printk'
(.text+0x83c): relocation truncated to fit: R_OR1K_INSN_REL_26 against undefined symbol `printk'
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for LOCKDEP
Depends on DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT && (FRAME_POINTER || MIPS || PPC || S390 || MICROBLAZE || ARM || ARC || X86)
Selected by
- PROVE_LOCKING && DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT
- DEBUG_LOCK_ALLOC && DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT
New smatch warnings:
lib/vsprintf.c:3615 vsscanf() error: uninitialized symbol 'next'.
Old smatch warnings:
lib/vsprintf.c:1440 ip6_compressed_string() warn: possible spectre second half. '*p'
lib/vsprintf.c:1443 ip6_compressed_string() warn: possible spectre second half. '*p'
vim +/next +3615 lib/vsprintf.c
4370aa4aa75391 Lai Jiangshan 2009-03-06 3344
^1da177e4c3f41 Linus Torvalds 2005-04-16 3345 /**
^1da177e4c3f41 Linus Torvalds 2005-04-16 3346 * vsscanf - Unformat a buffer into a list of arguments
^1da177e4c3f41 Linus Torvalds 2005-04-16 3347 * @buf: input buffer
^1da177e4c3f41 Linus Torvalds 2005-04-16 3348 * @fmt: format of buffer
^1da177e4c3f41 Linus Torvalds 2005-04-16 3349 * @args: arguments
^1da177e4c3f41 Linus Torvalds 2005-04-16 3350 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 3351 int vsscanf(const char *buf, const char *fmt, va_list args)
^1da177e4c3f41 Linus Torvalds 2005-04-16 3352 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 3353 const char *str = buf;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3354 char *next;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3355 char digit;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3356 int num = 0;
ef0658f3de484b Joe Perches 2010-03-06 3357 u8 qualifier;
53809751ac230a Jan Beulich 2012-12-17 3358 unsigned int base;
53809751ac230a Jan Beulich 2012-12-17 3359 union {
53809751ac230a Jan Beulich 2012-12-17 3360 long long s;
53809751ac230a Jan Beulich 2012-12-17 3361 unsigned long long u;
53809751ac230a Jan Beulich 2012-12-17 3362 } val;
ef0658f3de484b Joe Perches 2010-03-06 3363 s16 field_width;
d4be151b2180fb André Goddard Rosa 2009-12-14 3364 bool is_sign;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3365
da99075c1d3683 Jan Beulich 2012-10-04 3366 while (*fmt) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 3367 /* skip any white space in format */
^1da177e4c3f41 Linus Torvalds 2005-04-16 3368 /* white space in format matchs any amount of
^1da177e4c3f41 Linus Torvalds 2005-04-16 3369 * white space, including none, in the input.
^1da177e4c3f41 Linus Torvalds 2005-04-16 3370 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 3371 if (isspace(*fmt)) {
e7d2860b690d4f André Goddard Rosa 2009-12-14 3372 fmt = skip_spaces(++fmt);
e7d2860b690d4f André Goddard Rosa 2009-12-14 3373 str = skip_spaces(str);
^1da177e4c3f41 Linus Torvalds 2005-04-16 3374 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 3375
^1da177e4c3f41 Linus Torvalds 2005-04-16 3376 /* anything that is not a conversion must match exactly */
^1da177e4c3f41 Linus Torvalds 2005-04-16 3377 if (*fmt != '%' && *fmt) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 3378 if (*fmt++ != *str++)
^1da177e4c3f41 Linus Torvalds 2005-04-16 3379 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3380 continue;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3381 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 3382
^1da177e4c3f41 Linus Torvalds 2005-04-16 3383 if (!*fmt)
^1da177e4c3f41 Linus Torvalds 2005-04-16 3384 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3385 ++fmt;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3386
^1da177e4c3f41 Linus Torvalds 2005-04-16 3387 /* skip this conversion.
^1da177e4c3f41 Linus Torvalds 2005-04-16 3388 * advance both strings to next white space
^1da177e4c3f41 Linus Torvalds 2005-04-16 3389 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 3390 if (*fmt == '*') {
da99075c1d3683 Jan Beulich 2012-10-04 3391 if (!*str)
da99075c1d3683 Jan Beulich 2012-10-04 3392 break;
f9310b2f9a19b7 Jessica Yu 2016-03-17 3393 while (!isspace(*fmt) && *fmt != '%' && *fmt) {
f9310b2f9a19b7 Jessica Yu 2016-03-17 3394 /* '%*[' not yet supported, invalid format */
f9310b2f9a19b7 Jessica Yu 2016-03-17 3395 if (*fmt == '[')
f9310b2f9a19b7 Jessica Yu 2016-03-17 3396 return num;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3397 fmt++;
f9310b2f9a19b7 Jessica Yu 2016-03-17 3398 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 3399 while (!isspace(*str) && *str)
^1da177e4c3f41 Linus Torvalds 2005-04-16 3400 str++;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3401 continue;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3402 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 3403
^1da177e4c3f41 Linus Torvalds 2005-04-16 3404 /* get field width */
^1da177e4c3f41 Linus Torvalds 2005-04-16 3405 field_width = -1;
53809751ac230a Jan Beulich 2012-12-17 3406 if (isdigit(*fmt)) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 3407 field_width = skip_atoi(&fmt);
53809751ac230a Jan Beulich 2012-12-17 3408 if (field_width <= 0)
53809751ac230a Jan Beulich 2012-12-17 3409 break;
53809751ac230a Jan Beulich 2012-12-17 3410 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 3411
^1da177e4c3f41 Linus Torvalds 2005-04-16 3412 /* get conversion qualifier */
^1da177e4c3f41 Linus Torvalds 2005-04-16 3413 qualifier = -1;
75fb8f269305fc Andy Shevchenko 2011-07-25 3414 if (*fmt == 'h' || _tolower(*fmt) == 'l' ||
5b5e0928f742cf Alexey Dobriyan 2017-02-27 3415 *fmt == 'z') {
^1da177e4c3f41 Linus Torvalds 2005-04-16 3416 qualifier = *fmt++;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3417 if (unlikely(qualifier == *fmt)) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 3418 if (qualifier == 'h') {
^1da177e4c3f41 Linus Torvalds 2005-04-16 3419 qualifier = 'H';
^1da177e4c3f41 Linus Torvalds 2005-04-16 3420 fmt++;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3421 } else if (qualifier == 'l') {
^1da177e4c3f41 Linus Torvalds 2005-04-16 3422 qualifier = 'L';
^1da177e4c3f41 Linus Torvalds 2005-04-16 3423 fmt++;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3424 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 3425 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 3426 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 3427
da99075c1d3683 Jan Beulich 2012-10-04 3428 if (!*fmt)
da99075c1d3683 Jan Beulich 2012-10-04 3429 break;
da99075c1d3683 Jan Beulich 2012-10-04 3430
da99075c1d3683 Jan Beulich 2012-10-04 3431 if (*fmt == 'n') {
da99075c1d3683 Jan Beulich 2012-10-04 3432 /* return number of characters read so far */
da99075c1d3683 Jan Beulich 2012-10-04 3433 *va_arg(args, int *) = str - buf;
da99075c1d3683 Jan Beulich 2012-10-04 3434 ++fmt;
da99075c1d3683 Jan Beulich 2012-10-04 3435 continue;
da99075c1d3683 Jan Beulich 2012-10-04 3436 }
da99075c1d3683 Jan Beulich 2012-10-04 3437
da99075c1d3683 Jan Beulich 2012-10-04 3438 if (!*str)
^1da177e4c3f41 Linus Torvalds 2005-04-16 3439 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3440
d4be151b2180fb André Goddard Rosa 2009-12-14 3441 base = 10;
3f623eba2a7fc0 Fabian Frederick 2014-06-04 3442 is_sign = false;
d4be151b2180fb André Goddard Rosa 2009-12-14 3443
^1da177e4c3f41 Linus Torvalds 2005-04-16 3444 switch (*fmt++) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 3445 case 'c':
^1da177e4c3f41 Linus Torvalds 2005-04-16 3446 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 3447 char *s = (char *)va_arg(args, char*);
^1da177e4c3f41 Linus Torvalds 2005-04-16 3448 if (field_width == -1)
^1da177e4c3f41 Linus Torvalds 2005-04-16 3449 field_width = 1;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3450 do {
^1da177e4c3f41 Linus Torvalds 2005-04-16 3451 *s++ = *str++;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3452 } while (--field_width > 0 && *str);
^1da177e4c3f41 Linus Torvalds 2005-04-16 3453 num++;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3454 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 3455 continue;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3456 case 's':
^1da177e4c3f41 Linus Torvalds 2005-04-16 3457 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 3458 char *s = (char *)va_arg(args, char *);
^1da177e4c3f41 Linus Torvalds 2005-04-16 3459 if (field_width == -1)
4be929be34f9bd Alexey Dobriyan 2010-05-24 3460 field_width = SHRT_MAX;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3461 /* first, skip leading white space in buffer */
e7d2860b690d4f André Goddard Rosa 2009-12-14 3462 str = skip_spaces(str);
^1da177e4c3f41 Linus Torvalds 2005-04-16 3463
^1da177e4c3f41 Linus Torvalds 2005-04-16 3464 /* now copy until next white space */
7b9186f5eb0b17 André Goddard Rosa 2009-12-14 3465 while (*str && !isspace(*str) && field_width--)
^1da177e4c3f41 Linus Torvalds 2005-04-16 3466 *s++ = *str++;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3467 *s = '\0';
^1da177e4c3f41 Linus Torvalds 2005-04-16 3468 num++;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3469 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 3470 continue;
f9310b2f9a19b7 Jessica Yu 2016-03-17 3471 /*
f9310b2f9a19b7 Jessica Yu 2016-03-17 3472 * Warning: This implementation of the '[' conversion specifier
f9310b2f9a19b7 Jessica Yu 2016-03-17 3473 * deviates from its glibc counterpart in the following ways:
f9310b2f9a19b7 Jessica Yu 2016-03-17 3474 * (1) It does NOT support ranges i.e. '-' is NOT a special
f9310b2f9a19b7 Jessica Yu 2016-03-17 3475 * character
f9310b2f9a19b7 Jessica Yu 2016-03-17 3476 * (2) It cannot match the closing bracket ']' itself
f9310b2f9a19b7 Jessica Yu 2016-03-17 3477 * (3) A field width is required
f9310b2f9a19b7 Jessica Yu 2016-03-17 3478 * (4) '%*[' (discard matching input) is currently not supported
f9310b2f9a19b7 Jessica Yu 2016-03-17 3479 *
f9310b2f9a19b7 Jessica Yu 2016-03-17 3480 * Example usage:
f9310b2f9a19b7 Jessica Yu 2016-03-17 3481 * ret = sscanf("00:0a:95","%2[^:]:%2[^:]:%2[^:]",
f9310b2f9a19b7 Jessica Yu 2016-03-17 3482 * buf1, buf2, buf3);
f9310b2f9a19b7 Jessica Yu 2016-03-17 3483 * if (ret < 3)
f9310b2f9a19b7 Jessica Yu 2016-03-17 3484 * // etc..
f9310b2f9a19b7 Jessica Yu 2016-03-17 3485 */
f9310b2f9a19b7 Jessica Yu 2016-03-17 3486 case '[':
f9310b2f9a19b7 Jessica Yu 2016-03-17 3487 {
f9310b2f9a19b7 Jessica Yu 2016-03-17 3488 char *s = (char *)va_arg(args, char *);
f9310b2f9a19b7 Jessica Yu 2016-03-17 3489 DECLARE_BITMAP(set, 256) = {0};
f9310b2f9a19b7 Jessica Yu 2016-03-17 3490 unsigned int len = 0;
f9310b2f9a19b7 Jessica Yu 2016-03-17 3491 bool negate = (*fmt == '^');
f9310b2f9a19b7 Jessica Yu 2016-03-17 3492
f9310b2f9a19b7 Jessica Yu 2016-03-17 3493 /* field width is required */
f9310b2f9a19b7 Jessica Yu 2016-03-17 3494 if (field_width == -1)
f9310b2f9a19b7 Jessica Yu 2016-03-17 3495 return num;
f9310b2f9a19b7 Jessica Yu 2016-03-17 3496
f9310b2f9a19b7 Jessica Yu 2016-03-17 3497 if (negate)
f9310b2f9a19b7 Jessica Yu 2016-03-17 3498 ++fmt;
f9310b2f9a19b7 Jessica Yu 2016-03-17 3499
f9310b2f9a19b7 Jessica Yu 2016-03-17 3500 for ( ; *fmt && *fmt != ']'; ++fmt, ++len)
f9310b2f9a19b7 Jessica Yu 2016-03-17 3501 set_bit((u8)*fmt, set);
f9310b2f9a19b7 Jessica Yu 2016-03-17 3502
f9310b2f9a19b7 Jessica Yu 2016-03-17 3503 /* no ']' or no character set found */
f9310b2f9a19b7 Jessica Yu 2016-03-17 3504 if (!*fmt || !len)
f9310b2f9a19b7 Jessica Yu 2016-03-17 3505 return num;
f9310b2f9a19b7 Jessica Yu 2016-03-17 3506 ++fmt;
f9310b2f9a19b7 Jessica Yu 2016-03-17 3507
f9310b2f9a19b7 Jessica Yu 2016-03-17 3508 if (negate) {
f9310b2f9a19b7 Jessica Yu 2016-03-17 3509 bitmap_complement(set, set, 256);
f9310b2f9a19b7 Jessica Yu 2016-03-17 3510 /* exclude null '\0' byte */
f9310b2f9a19b7 Jessica Yu 2016-03-17 3511 clear_bit(0, set);
f9310b2f9a19b7 Jessica Yu 2016-03-17 3512 }
f9310b2f9a19b7 Jessica Yu 2016-03-17 3513
f9310b2f9a19b7 Jessica Yu 2016-03-17 3514 /* match must be non-empty */
f9310b2f9a19b7 Jessica Yu 2016-03-17 3515 if (!test_bit((u8)*str, set))
f9310b2f9a19b7 Jessica Yu 2016-03-17 3516 return num;
f9310b2f9a19b7 Jessica Yu 2016-03-17 3517
f9310b2f9a19b7 Jessica Yu 2016-03-17 3518 while (test_bit((u8)*str, set) && field_width--)
f9310b2f9a19b7 Jessica Yu 2016-03-17 3519 *s++ = *str++;
f9310b2f9a19b7 Jessica Yu 2016-03-17 3520 *s = '\0';
f9310b2f9a19b7 Jessica Yu 2016-03-17 3521 ++num;
f9310b2f9a19b7 Jessica Yu 2016-03-17 3522 }
f9310b2f9a19b7 Jessica Yu 2016-03-17 3523 continue;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3524 case 'o':
^1da177e4c3f41 Linus Torvalds 2005-04-16 3525 base = 8;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3526 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3527 case 'x':
^1da177e4c3f41 Linus Torvalds 2005-04-16 3528 case 'X':
^1da177e4c3f41 Linus Torvalds 2005-04-16 3529 base = 16;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3530 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3531 case 'i':
^1da177e4c3f41 Linus Torvalds 2005-04-16 3532 base = 0;
4c1ca831adb101 Nick Desaulniers 2020-11-15 3533 fallthrough;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3534 case 'd':
3f623eba2a7fc0 Fabian Frederick 2014-06-04 3535 is_sign = true;
4c1ca831adb101 Nick Desaulniers 2020-11-15 3536 fallthrough;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3537 case 'u':
^1da177e4c3f41 Linus Torvalds 2005-04-16 3538 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3539 case '%':
^1da177e4c3f41 Linus Torvalds 2005-04-16 3540 /* looking for '%' in str */
^1da177e4c3f41 Linus Torvalds 2005-04-16 3541 if (*str++ != '%')
^1da177e4c3f41 Linus Torvalds 2005-04-16 3542 return num;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3543 continue;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3544 default:
^1da177e4c3f41 Linus Torvalds 2005-04-16 3545 /* invalid format; stop here */
^1da177e4c3f41 Linus Torvalds 2005-04-16 3546 return num;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3547 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 3548
^1da177e4c3f41 Linus Torvalds 2005-04-16 3549 /* have some sort of integer conversion.
^1da177e4c3f41 Linus Torvalds 2005-04-16 3550 * first, skip white space in buffer.
^1da177e4c3f41 Linus Torvalds 2005-04-16 3551 */
e7d2860b690d4f André Goddard Rosa 2009-12-14 3552 str = skip_spaces(str);
^1da177e4c3f41 Linus Torvalds 2005-04-16 3553
^1da177e4c3f41 Linus Torvalds 2005-04-16 3554 digit = *str;
11b3dda5e8b6cd Richard Fitzgerald 2021-05-14 3555 if (is_sign && digit == '-') {
11b3dda5e8b6cd Richard Fitzgerald 2021-05-14 3556 if (field_width == 1)
11b3dda5e8b6cd Richard Fitzgerald 2021-05-14 3557 break;
11b3dda5e8b6cd Richard Fitzgerald 2021-05-14 3558
^1da177e4c3f41 Linus Torvalds 2005-04-16 3559 digit = *(str + 1);
11b3dda5e8b6cd Richard Fitzgerald 2021-05-14 3560 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 3561
^1da177e4c3f41 Linus Torvalds 2005-04-16 3562 if (!digit
^1da177e4c3f41 Linus Torvalds 2005-04-16 3563 || (base == 16 && !isxdigit(digit))
^1da177e4c3f41 Linus Torvalds 2005-04-16 3564 || (base == 10 && !isdigit(digit))
^1da177e4c3f41 Linus Torvalds 2005-04-16 3565 || (base == 8 && (!isdigit(digit) || digit > '7'))
^1da177e4c3f41 Linus Torvalds 2005-04-16 3566 || (base == 0 && !isdigit(digit)))
^1da177e4c3f41 Linus Torvalds 2005-04-16 3567 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3568
53809751ac230a Jan Beulich 2012-12-17 3569 if (is_sign)
900fdc4573766d Richard Fitzgerald 2021-05-14 3570 val.s = simple_strntoll(str,
900fdc4573766d Richard Fitzgerald 2021-05-14 3571 field_width >= 0 ? field_width : INT_MAX,
900fdc4573766d Richard Fitzgerald 2021-05-14 3572 &next, base);
53809751ac230a Jan Beulich 2012-12-17 3573 else
900fdc4573766d Richard Fitzgerald 2021-05-14 3574 val.u = simple_strntoull(str,
900fdc4573766d Richard Fitzgerald 2021-05-14 3575 field_width >= 0 ? field_width : INT_MAX,
900fdc4573766d Richard Fitzgerald 2021-05-14 3576 &next, base);
53809751ac230a Jan Beulich 2012-12-17 3577
^1da177e4c3f41 Linus Torvalds 2005-04-16 3578 switch (qualifier) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 3579 case 'H': /* that's 'hh' in format */
53809751ac230a Jan Beulich 2012-12-17 3580 if (is_sign)
53809751ac230a Jan Beulich 2012-12-17 3581 *va_arg(args, signed char *) = val.s;
53809751ac230a Jan Beulich 2012-12-17 3582 else
53809751ac230a Jan Beulich 2012-12-17 3583 *va_arg(args, unsigned char *) = val.u;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3584 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3585 case 'h':
53809751ac230a Jan Beulich 2012-12-17 3586 if (is_sign)
53809751ac230a Jan Beulich 2012-12-17 3587 *va_arg(args, short *) = val.s;
53809751ac230a Jan Beulich 2012-12-17 3588 else
53809751ac230a Jan Beulich 2012-12-17 3589 *va_arg(args, unsigned short *) = val.u;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3590 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3591 case 'l':
53809751ac230a Jan Beulich 2012-12-17 3592 if (is_sign)
53809751ac230a Jan Beulich 2012-12-17 3593 *va_arg(args, long *) = val.s;
53809751ac230a Jan Beulich 2012-12-17 3594 else
53809751ac230a Jan Beulich 2012-12-17 3595 *va_arg(args, unsigned long *) = val.u;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3596 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3597 case 'L':
53809751ac230a Jan Beulich 2012-12-17 3598 if (is_sign)
53809751ac230a Jan Beulich 2012-12-17 3599 *va_arg(args, long long *) = val.s;
53809751ac230a Jan Beulich 2012-12-17 3600 else
53809751ac230a Jan Beulich 2012-12-17 3601 *va_arg(args, unsigned long long *) = val.u;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3602 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3603 case 'z':
53809751ac230a Jan Beulich 2012-12-17 3604 *va_arg(args, size_t *) = val.u;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3605 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3606 default:
53809751ac230a Jan Beulich 2012-12-17 3607 if (is_sign)
53809751ac230a Jan Beulich 2012-12-17 3608 *va_arg(args, int *) = val.s;
53809751ac230a Jan Beulich 2012-12-17 3609 else
53809751ac230a Jan Beulich 2012-12-17 3610 *va_arg(args, unsigned int *) = val.u;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3611 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3612 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 3613 num++;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3614
^1da177e4c3f41 Linus Torvalds 2005-04-16 @3615 if (!next)
^1da177e4c3f41 Linus Torvalds 2005-04-16 3616 break;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3617 str = next;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3618 }
c6b40d16d1cfa1 Johannes Berg 2007-05-08 3619
^1da177e4c3f41 Linus Torvalds 2005-04-16 3620 return num;
^1da177e4c3f41 Linus Torvalds 2005-04-16 3621 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 3622 EXPORT_SYMBOL(vsscanf);
^1da177e4c3f41 Linus Torvalds 2005-04-16 3623
:::::: The code at line 3615 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2
:::::: TO: Linus Torvalds <torvalds@ppc970.osdl.org>
:::::: CC: Linus Torvalds <torvalds@ppc970.osdl.org>
--
0-DAY CI Kernel Test Service
https://01.org/lkp
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-05-07 11:39 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-07 11:39 lib/vsprintf.c:3615 vsscanf() error: uninitialized symbol 'next' kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.