lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202506110256.SKiha1MS-lkp@intel.com>
Date: Wed, 11 Jun 2025 02:53:42 +0800
From: kernel test robot <lkp@...el.com>
To: Jisheng Zhang <jszhang@...nel.org>
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
	linux-kernel@...r.kernel.org, Palmer Dabbelt <palmer@...osinc.com>,
	Cyril Bur <cyrilbur@...storrent.com>,
	Alexandre Ghiti <alexghiti@...osinc.com>
Subject: kernel/trace/trace_events_user.c:2404:8: warning: label followed by
 a declaration is a C23 extension

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   f09079bd04a924c72d555cd97942d5f8d7eca98c
commit: f6bff7827a48e59cff1ef98aae72452d65174e0c riscv: uaccess: use 'asm_goto_output' for get_user()
date:   5 weeks ago
config: riscv-randconfig-002-20250611
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
reproduce (this is a W=1 build):

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202506110256.SKiha1MS-lkp@intel.com/

All warnings (new ones prefixed by >>):

   In file included from kernel/trace/trace_events_user.c:10:
   In file included from include/linux/cdev.h:8:
   In file included from include/linux/device.h:32:
   In file included from include/linux/device/driver.h:21:
   In file included from include/linux/module.h:19:
   In file included from include/linux/elf.h:6:
   In file included from arch/riscv/include/asm/elf.h:12:
   In file included from include/linux/compat.h:17:
   include/linux/fs.h:3921:15: warning: label followed by a declaration is a C23 extension [-Wc23-extensions]
    3921 |         if (unlikely(get_user(c, path)))
         |                      ^
   arch/riscv/include/asm/uaccess.h:263:3: note: expanded from macro 'get_user'
     263 |                 __get_user((x), __p) :                          \
         |                 ^
   arch/riscv/include/asm/uaccess.h:233:2: note: expanded from macro '__get_user'
     233 |         __get_user_error(__gu_val, __gu_ptr, __gu_err);         \
         |         ^
   arch/riscv/include/asm/uaccess.h:196:2: note: expanded from macro '__get_user_error'
     196 |         __get_user_nocheck(x, ptr, __gu_failed);                        \
         |         ^
   arch/riscv/include/asm/uaccess.h:185:3: note: expanded from macro '__get_user_nocheck'
     185 |                 __get_user_8((x), __gu_ptr, label);             \
         |                 ^
   arch/riscv/include/asm/uaccess.h:130:2: note: expanded from macro '__get_user_8'
     130 |         u32 __user *__ptr = (u32 __user *)(ptr);                \
         |         ^
>> kernel/trace/trace_events_user.c:2404:8: warning: label followed by a declaration is a C23 extension [-Wc23-extensions]
    2404 |         ret = get_user(size, &ureg->size);
         |               ^
   arch/riscv/include/asm/uaccess.h:263:3: note: expanded from macro 'get_user'
     263 |                 __get_user((x), __p) :                          \
         |                 ^
   arch/riscv/include/asm/uaccess.h:233:2: note: expanded from macro '__get_user'
     233 |         __get_user_error(__gu_val, __gu_ptr, __gu_err);         \
         |         ^
   arch/riscv/include/asm/uaccess.h:196:2: note: expanded from macro '__get_user_error'
     196 |         __get_user_nocheck(x, ptr, __gu_failed);                        \
         |         ^
   arch/riscv/include/asm/uaccess.h:185:3: note: expanded from macro '__get_user_nocheck'
     185 |                 __get_user_8((x), __gu_ptr, label);             \
         |                 ^
   arch/riscv/include/asm/uaccess.h:130:2: note: expanded from macro '__get_user_8'
     130 |         u32 __user *__ptr = (u32 __user *)(ptr);                \
         |         ^
   kernel/trace/trace_events_user.c:2566:8: warning: label followed by a declaration is a C23 extension [-Wc23-extensions]
    2566 |         ret = get_user(size, &ureg->size);
         |               ^
   arch/riscv/include/asm/uaccess.h:263:3: note: expanded from macro 'get_user'
     263 |                 __get_user((x), __p) :                          \
         |                 ^
   arch/riscv/include/asm/uaccess.h:233:2: note: expanded from macro '__get_user'
     233 |         __get_user_error(__gu_val, __gu_ptr, __gu_err);         \
         |         ^
   arch/riscv/include/asm/uaccess.h:196:2: note: expanded from macro '__get_user_error'
     196 |         __get_user_nocheck(x, ptr, __gu_failed);                        \
         |         ^
   arch/riscv/include/asm/uaccess.h:185:3: note: expanded from macro '__get_user_nocheck'
     185 |                 __get_user_8((x), __gu_ptr, label);             \
         |                 ^
   arch/riscv/include/asm/uaccess.h:130:2: note: expanded from macro '__get_user_8'
     130 |         u32 __user *__ptr = (u32 __user *)(ptr);                \
         |         ^
   3 warnings generated.


vim +2404 kernel/trace/trace_events_user.c

7f5a08c79df35e Beau Belgrave 2022-01-18  2398  
7f5a08c79df35e Beau Belgrave 2022-01-18  2399  static long user_reg_get(struct user_reg __user *ureg, struct user_reg *kreg)
7f5a08c79df35e Beau Belgrave 2022-01-18  2400  {
7f5a08c79df35e Beau Belgrave 2022-01-18  2401  	u32 size;
7f5a08c79df35e Beau Belgrave 2022-01-18  2402  	long ret;
7f5a08c79df35e Beau Belgrave 2022-01-18  2403  
7f5a08c79df35e Beau Belgrave 2022-01-18 @2404  	ret = get_user(size, &ureg->size);
7f5a08c79df35e Beau Belgrave 2022-01-18  2405  
7f5a08c79df35e Beau Belgrave 2022-01-18  2406  	if (ret)
7f5a08c79df35e Beau Belgrave 2022-01-18  2407  		return ret;
7f5a08c79df35e Beau Belgrave 2022-01-18  2408  
7f5a08c79df35e Beau Belgrave 2022-01-18  2409  	if (size > PAGE_SIZE)
7f5a08c79df35e Beau Belgrave 2022-01-18  2410  		return -E2BIG;
7f5a08c79df35e Beau Belgrave 2022-01-18  2411  
39d6d08b2edf99 Beau Belgrave 2022-07-28  2412  	if (size < offsetofend(struct user_reg, write_index))
39d6d08b2edf99 Beau Belgrave 2022-07-28  2413  		return -EINVAL;
39d6d08b2edf99 Beau Belgrave 2022-07-28  2414  
39d6d08b2edf99 Beau Belgrave 2022-07-28  2415  	ret = copy_struct_from_user(kreg, sizeof(*kreg), ureg, size);
39d6d08b2edf99 Beau Belgrave 2022-07-28  2416  
39d6d08b2edf99 Beau Belgrave 2022-07-28  2417  	if (ret)
39d6d08b2edf99 Beau Belgrave 2022-07-28  2418  		return ret;
39d6d08b2edf99 Beau Belgrave 2022-07-28  2419  
a65442edb47a6d Beau Belgrave 2023-06-14  2420  	/* Ensure only valid flags */
a65442edb47a6d Beau Belgrave 2023-06-14  2421  	if (kreg->flags & ~(USER_EVENT_REG_MAX-1))
7235759084a4f8 Beau Belgrave 2023-03-28  2422  		return -EINVAL;
7235759084a4f8 Beau Belgrave 2023-03-28  2423  
7235759084a4f8 Beau Belgrave 2023-03-28  2424  	/* Ensure supported size */
7235759084a4f8 Beau Belgrave 2023-03-28  2425  	switch (kreg->enable_size) {
7235759084a4f8 Beau Belgrave 2023-03-28  2426  	case 4:
7235759084a4f8 Beau Belgrave 2023-03-28  2427  		/* 32-bit */
7235759084a4f8 Beau Belgrave 2023-03-28  2428  		break;
7235759084a4f8 Beau Belgrave 2023-03-28  2429  #if BITS_PER_LONG >= 64
7235759084a4f8 Beau Belgrave 2023-03-28  2430  	case 8:
7235759084a4f8 Beau Belgrave 2023-03-28  2431  		/* 64-bit */
7235759084a4f8 Beau Belgrave 2023-03-28  2432  		break;
7235759084a4f8 Beau Belgrave 2023-03-28  2433  #endif
7235759084a4f8 Beau Belgrave 2023-03-28  2434  	default:
7235759084a4f8 Beau Belgrave 2023-03-28  2435  		return -EINVAL;
7235759084a4f8 Beau Belgrave 2023-03-28  2436  	}
7235759084a4f8 Beau Belgrave 2023-03-28  2437  
7235759084a4f8 Beau Belgrave 2023-03-28  2438  	/* Ensure natural alignment */
7235759084a4f8 Beau Belgrave 2023-03-28  2439  	if (kreg->enable_addr % kreg->enable_size)
7235759084a4f8 Beau Belgrave 2023-03-28  2440  		return -EINVAL;
7235759084a4f8 Beau Belgrave 2023-03-28  2441  
7235759084a4f8 Beau Belgrave 2023-03-28  2442  	/* Ensure bit range for size */
7235759084a4f8 Beau Belgrave 2023-03-28  2443  	if (kreg->enable_bit > (kreg->enable_size * BITS_PER_BYTE) - 1)
7235759084a4f8 Beau Belgrave 2023-03-28  2444  		return -EINVAL;
7235759084a4f8 Beau Belgrave 2023-03-28  2445  
7235759084a4f8 Beau Belgrave 2023-03-28  2446  	/* Ensure accessible */
7235759084a4f8 Beau Belgrave 2023-03-28  2447  	if (!access_ok((const void __user *)(uintptr_t)kreg->enable_addr,
7235759084a4f8 Beau Belgrave 2023-03-28  2448  		       kreg->enable_size))
7235759084a4f8 Beau Belgrave 2023-03-28  2449  		return -EFAULT;
7235759084a4f8 Beau Belgrave 2023-03-28  2450  
39d6d08b2edf99 Beau Belgrave 2022-07-28  2451  	kreg->size = size;
39d6d08b2edf99 Beau Belgrave 2022-07-28  2452  
39d6d08b2edf99 Beau Belgrave 2022-07-28  2453  	return 0;
7f5a08c79df35e Beau Belgrave 2022-01-18  2454  }
7f5a08c79df35e Beau Belgrave 2022-01-18  2455  

:::::: The code at line 2404 was first introduced by commit
:::::: 7f5a08c79df35e68f1a43033450c5050f12bc155 user_events: Add minimal support for trace_event into ftrace

:::::: TO: Beau Belgrave <beaub@...ux.microsoft.com>
:::::: CC: Steven Rostedt (Google) <rostedt@...dmis.org>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

View attachment "reproduce" of type "text/plain" (903 bytes)

View attachment "config" of type "text/plain" (127779 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ