Re: [PATCH] ath10k: replace deprecated strncpy with strtomem_pad
On 10/18/2023 4:35 PM, Kees Cook wrote: On Fri, Oct 13, 2023 at 05:58:03PM -0700, Jeff Johnson wrote: Let's also mark ath10k_vif.u.ap.ssid as __nonstring. what criteria is used to determine whether or not to use __nonstring? doesn't the use of u8 vs char already communicate that distinction? just want to know what other u8 arrays might require this. FWIW the documentation referenced by the __nonstring macro explicitly refers to "type array of char, signed char, or unsigned char" The use of __nonstring is for byte arrays that are _not_ expected to be %NUL terminated. Unfortunately "char" vs "u8" isn't distinguished by the compiler. All byte arrays are treated as C strings unless __nonstring is used. So is the plan to annotate every single binary blob array in the kernel as __nonstring? I suspect those outnumber string arrays.
[kvalo-ath:pending-deferred] BUILD SUCCESS a3cfdc79c4a8fc1096676e4b68da8ae1f84fbefd
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git pending-deferred branch HEAD: a3cfdc79c4a8fc1096676e4b68da8ae1f84fbefd wifi: ath10k: mac: enable WIPHY_FLAG_CHANNEL_CHANGE_ON_BEACON on ath10k elapsed time: 6072m configs tested: 133 configs skipped: 2 The following configs have been built successfully. More configs may be tested in the coming days. tested configs: alpha allnoconfig gcc alphaallyesconfig gcc alpha defconfig gcc arc allmodconfig gcc arc allnoconfig gcc arc allyesconfig gcc arc defconfig gcc arc randconfig-001-20231020 gcc arm allmodconfig gcc arm allnoconfig gcc arm allyesconfig gcc arm defconfig gcc arm randconfig-001-20231021 gcc arm64allmodconfig gcc arm64 allnoconfig gcc arm64allyesconfig gcc arm64 defconfig gcc csky allmodconfig gcc csky allnoconfig gcc csky allyesconfig gcc cskydefconfig gcc i386 allmodconfig gcc i386 allnoconfig gcc i386 buildonly-randconfig-001-20231021 gcc i386 buildonly-randconfig-002-20231021 gcc i386 buildonly-randconfig-003-20231021 gcc i386 buildonly-randconfig-004-20231021 gcc i386 buildonly-randconfig-005-20231021 gcc i386 buildonly-randconfig-006-20231021 gcc i386 debian-10.3 gcc i386defconfig gcc i386 randconfig-001-20231021 gcc i386 randconfig-002-20231021 gcc i386 randconfig-003-20231021 gcc i386 randconfig-004-20231021 gcc i386 randconfig-005-20231021 gcc i386 randconfig-006-20231021 gcc i386 randconfig-011-20231021 gcc i386 randconfig-012-20231021 gcc i386 randconfig-013-20231021 gcc i386 randconfig-014-20231021 gcc i386 randconfig-015-20231021 gcc i386 randconfig-016-20231021 gcc loongarchallmodconfig gcc loongarch allnoconfig gcc loongarchallyesconfig gcc loongarch defconfig gcc loongarch randconfig-001-20231020 gcc m68k allmodconfig gcc m68k allnoconfig gcc m68k allyesconfig gcc m68kdefconfig gcc microblaze allmodconfig gcc microblazeallnoconfig gcc microblaze allyesconfig gcc microblaze defconfig gcc mips allmodconfig gcc mips allnoconfig gcc mips allyesconfig gcc nios2allmodconfig gcc nios2 allnoconfig gcc nios2allyesconfig gcc nios2 defconfig gcc openrisc allmodconfig gcc openrisc allnoconfig gcc openrisc allyesconfig gcc openriscdefconfig gcc parisc allmodconfig gcc pariscallnoconfig gcc parisc allyesconfig gcc parisc defconfig gcc parisc64defconfig gcc powerpc allmodconfig gcc powerpc allnoconfig gcc powerpc allyesconfig gcc riscvallmodconfig gcc riscv allnoconfig gcc riscvallyesconfig gcc riscv defconfig gcc riscv randconfig-001-20231020 gcc riscv rv32_defconfig gcc s390 allmodconfig gcc s390 allnoconfig gcc s390 allyesconfig gcc s390defconfig gcc s390