fs/ntfs/namei.c:360 ntfs_sd_add_everyone() warn: assigning (-32764) to unsigned variable 'sd->control'

kernel test robot <[email protected]> Fri, 31 Jul 2026 02:22:53 +0800
Newsgroups dev.linux.lists.oe-kbuild
Message-ID <[email protected]>
BCC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Namjae Jeon <[email protected]>
CC: Amir Goldstein <[email protected]>
CC: Christoph Hellwig <[email protected]>

Hi Namjae,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   11028ab62899e4191e074ee364c712b77823a9c4
commit: 47503f989736d6c4c9f8bfca1c28d267473ccd4b ntfs: add Kconfig and Makefile
date:   5 months ago
:::::: branch date: 18 hours ago
:::::: commit date: 5 months ago
config: x86_64-randconfig-161-20260730 (https://download.01.org/0day-ci/archive/20260731/[email protected]/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
smatch: v0.5.0-9187-g5189e3fb

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
| Fixes: 47503f989736 ("ntfs: add Kconfig and Makefile")
| Reported-by: kernel test robot <[email protected]>
| Reported-by: Dan Carpenter <[email protected]>
| Closes: https://lore.kernel.org/r/[email protected]/

New smatch warnings:
fs/ntfs/namei.c:360 ntfs_sd_add_everyone() warn: assigning (-32764) to unsigned variable 'sd->control'

Old smatch warnings:
fs/ntfs/namei.c:239 ntfs_lookup() warn: passing zero to 'ERR_PTR'
fs/ntfs/namei.c:1091 ntfs_mkdir() warn: passing zero to 'ERR_PTR'
fs/ntfs/namei.c:1175 __ntfs_link() warn: impossible condition '(name_len > 255) => (0-255 > 255)'

vim +360 fs/ntfs/namei.c

1e9ea7e04472d4 Namjae Jeon 2025-12-30  338  
af0db57d4293cc Namjae Jeon 2026-02-13  339  static int ntfs_sd_add_everyone(struct ntfs_inode *ni)
af0db57d4293cc Namjae Jeon 2026-02-13  340  {
af0db57d4293cc Namjae Jeon 2026-02-13  341  	struct security_descriptor_relative *sd;
af0db57d4293cc Namjae Jeon 2026-02-13  342  	struct ntfs_acl *acl;
af0db57d4293cc Namjae Jeon 2026-02-13  343  	struct ntfs_ace *ace;
af0db57d4293cc Namjae Jeon 2026-02-13  344  	struct ntfs_sid *sid;
af0db57d4293cc Namjae Jeon 2026-02-13  345  	int ret, sd_len;
af0db57d4293cc Namjae Jeon 2026-02-13  346  
af0db57d4293cc Namjae Jeon 2026-02-13  347  	/* Create SECURITY_DESCRIPTOR attribute (everyone has full access). */
af0db57d4293cc Namjae Jeon 2026-02-13  348  	/*
af0db57d4293cc Namjae Jeon 2026-02-13  349  	 * Calculate security descriptor length. We have 2 sub-authorities in
af0db57d4293cc Namjae Jeon 2026-02-13  350  	 * owner and group SIDs, So add 8 bytes to every SID.
af0db57d4293cc Namjae Jeon 2026-02-13  351  	 */
af0db57d4293cc Namjae Jeon 2026-02-13  352  	sd_len = sizeof(struct security_descriptor_relative) + 2 *
af0db57d4293cc Namjae Jeon 2026-02-13  353  		(sizeof(struct ntfs_sid) + 8) + sizeof(struct ntfs_acl) +
af0db57d4293cc Namjae Jeon 2026-02-13  354  		sizeof(struct ntfs_ace) + 4;
af0db57d4293cc Namjae Jeon 2026-02-13  355  	sd = kmalloc(sd_len, GFP_NOFS);
af0db57d4293cc Namjae Jeon 2026-02-13  356  	if (!sd)
af0db57d4293cc Namjae Jeon 2026-02-13  357  		return -1;
af0db57d4293cc Namjae Jeon 2026-02-13  358  
af0db57d4293cc Namjae Jeon 2026-02-13  359  	sd->revision = 1;
af0db57d4293cc Namjae Jeon 2026-02-13 @360  	sd->control = SE_DACL_PRESENT | SE_SELF_RELATIVE;
af0db57d4293cc Namjae Jeon 2026-02-13  361  
af0db57d4293cc Namjae Jeon 2026-02-13  362  	sid = (struct ntfs_sid *)((u8 *)sd + sizeof(struct security_descriptor_relative));
af0db57d4293cc Namjae Jeon 2026-02-13  363  	sid->revision = 1;
af0db57d4293cc Namjae Jeon 2026-02-13  364  	sid->sub_authority_count = 2;
af0db57d4293cc Namjae Jeon 2026-02-13  365  	sid->sub_authority[0] = cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
af0db57d4293cc Namjae Jeon 2026-02-13  366  	sid->sub_authority[1] = cpu_to_le32(DOMAIN_ALIAS_RID_ADMINS);
af0db57d4293cc Namjae Jeon 2026-02-13  367  	sid->identifier_authority.value[5] = 5;
af0db57d4293cc Namjae Jeon 2026-02-13  368  	sd->owner = cpu_to_le32((u8 *)sid - (u8 *)sd);
af0db57d4293cc Namjae Jeon 2026-02-13  369  
af0db57d4293cc Namjae Jeon 2026-02-13  370  	sid = (struct ntfs_sid *)((u8 *)sid + sizeof(struct ntfs_sid) + 8);
af0db57d4293cc Namjae Jeon 2026-02-13  371  	sid->revision = 1;
af0db57d4293cc Namjae Jeon 2026-02-13  372  	sid->sub_authority_count = 2;
af0db57d4293cc Namjae Jeon 2026-02-13  373  	sid->sub_authority[0] = cpu_to_le32(SECURITY_BUILTIN_DOMAIN_RID);
af0db57d4293cc Namjae Jeon 2026-02-13  374  	sid->sub_authority[1] = cpu_to_le32(DOMAIN_ALIAS_RID_ADMINS);
af0db57d4293cc Namjae Jeon 2026-02-13  375  	sid->identifier_authority.value[5] = 5;
af0db57d4293cc Namjae Jeon 2026-02-13  376  	sd->group = cpu_to_le32((u8 *)sid - (u8 *)sd);
af0db57d4293cc Namjae Jeon 2026-02-13  377  
af0db57d4293cc Namjae Jeon 2026-02-13  378  	acl = (struct ntfs_acl *)((u8 *)sid + sizeof(struct ntfs_sid) + 8);
af0db57d4293cc Namjae Jeon 2026-02-13  379  	acl->revision = 2;
af0db57d4293cc Namjae Jeon 2026-02-13  380  	acl->size = cpu_to_le16(sizeof(struct ntfs_acl) + sizeof(struct ntfs_ace) + 4);
af0db57d4293cc Namjae Jeon 2026-02-13  381  	acl->ace_count = cpu_to_le16(1);
af0db57d4293cc Namjae Jeon 2026-02-13  382  	sd->dacl = cpu_to_le32((u8 *)acl - (u8 *)sd);
af0db57d4293cc Namjae Jeon 2026-02-13  383  
af0db57d4293cc Namjae Jeon 2026-02-13  384  	ace = (struct ntfs_ace *)((u8 *)acl + sizeof(struct ntfs_acl));
af0db57d4293cc Namjae Jeon 2026-02-13  385  	ace->type = ACCESS_ALLOWED_ACE_TYPE;
af0db57d4293cc Namjae Jeon 2026-02-13  386  	ace->flags = OBJECT_INHERIT_ACE | CONTAINER_INHERIT_ACE;
af0db57d4293cc Namjae Jeon 2026-02-13  387  	ace->size = cpu_to_le16(sizeof(struct ntfs_ace) + 4);
af0db57d4293cc Namjae Jeon 2026-02-13  388  	ace->mask = cpu_to_le32(0x1f01ff);
af0db57d4293cc Namjae Jeon 2026-02-13  389  	ace->sid.revision = 1;
af0db57d4293cc Namjae Jeon 2026-02-13  390  	ace->sid.sub_authority_count = 1;
af0db57d4293cc Namjae Jeon 2026-02-13  391  	ace->sid.sub_authority[0] = 0;
af0db57d4293cc Namjae Jeon 2026-02-13  392  	ace->sid.identifier_authority.value[5] = 1;
af0db57d4293cc Namjae Jeon 2026-02-13  393  
af0db57d4293cc Namjae Jeon 2026-02-13  394  	ret = ntfs_attr_add(ni, AT_SECURITY_DESCRIPTOR, AT_UNNAMED, 0, (u8 *)sd,
af0db57d4293cc Namjae Jeon 2026-02-13  395  			sd_len);
af0db57d4293cc Namjae Jeon 2026-02-13  396  	if (ret)
af0db57d4293cc Namjae Jeon 2026-02-13  397  		ntfs_error(ni->vol->sb, "Failed to add SECURITY_DESCRIPTOR\n");
af0db57d4293cc Namjae Jeon 2026-02-13  398  
af0db57d4293cc Namjae Jeon 2026-02-13  399  	kfree(sd);
af0db57d4293cc Namjae Jeon 2026-02-13  400  	return ret;
af0db57d4293cc Namjae Jeon 2026-02-13  401  }
af0db57d4293cc Namjae Jeon 2026-02-13  402  

:::::: The code at line 360 was first introduced by commit
:::::: af0db57d4293cc9fe6ce99fb5592dc2652228c9d ntfs: update inode operations

:::::: TO: Namjae Jeon <[email protected]>
:::::: CC: Namjae Jeon <[email protected]>

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