All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: [smfrench-smb3:pr/146 1/1] fs/smb/client/link.c:509 cifs_hardlink() error: we previously assumed 'old_file' could be null (see line 464)
Date: Mon, 30 Mar 2026 23:32:23 +0800	[thread overview]
Message-ID: <202603302356.u8QdlRIM-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Steve French <stfrench@microsoft.com>

tree:   https://github.com/smfrench/smb3-kernel.git pr/146
head:   d290e116f12405d8269c6041cbf68bc924b4cba6
commit: d290e116f12405d8269c6041cbf68bc924b4cba6 [1/1] smb: client: add support for O_TMPFILE (WIP)
:::::: branch date: 23 hours ago
:::::: commit date: 23 hours ago
config: x86_64-randconfig-161-20260330 (https://download.01.org/0day-ci/archive/20260330/202603302356.u8QdlRIM-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
smatch: v0.5.0-9004-gb810ac53

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@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202603302356.u8QdlRIM-lkp@intel.com/

smatch warnings:
fs/smb/client/link.c:509 cifs_hardlink() error: we previously assumed 'old_file' could be null (see line 464)

vim +/old_file +509 fs/smb/client/link.c

5ab97578cbb3bf fs/cifs/link.c       Steve French         2014-09-15  435  
0f8dce1cb7454f fs/cifs/link.c       Sachin Prabhu        2013-11-25  436  /*
0f8dce1cb7454f fs/cifs/link.c       Sachin Prabhu        2013-11-25  437   * M-F Symlink Functions - End
0f8dce1cb7454f fs/cifs/link.c       Sachin Prabhu        2013-11-25  438   */
8bfb50a882ccd9 fs/cifs/link.c       Stefan Metzmacher    2010-07-31  439  
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  440  int
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  441  cifs_hardlink(struct dentry *old_file, struct inode *inode,
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  442  	      struct dentry *direntry)
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  443  {
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  444  	int rc = -EACCES;
6d5786a34d98bf fs/cifs/link.c       Pavel Shilovsky      2012-06-20  445  	unsigned int xid;
f6a9bc336b600e fs/cifs/link.c       Al Viro              2021-03-05  446  	const char *from_name, *to_name;
d290e116f12405 fs/smb/client/link.c Paulo Alcantara      2026-03-27  447  	void *page1 = NULL, *page2 = NULL;
7ffec372458d16 fs/cifs/link.c       Jeff Layton          2010-09-29  448  	struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb);
7ffec372458d16 fs/cifs/link.c       Jeff Layton          2010-09-29  449  	struct tcon_link *tlink;
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  450  	struct cifs_tcon *tcon;
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  451  	struct TCP_Server_Info *server;
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  452  	struct cifsInodeInfo *cifsInode;
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  453  
087f757b012985 fs/cifs/link.c       Steve French         2021-04-29  454  	if (unlikely(cifs_forced_shutdown(cifs_sb)))
f80ac7eda1cf52 fs/smb/client/link.c David Howells        2025-10-24  455  		return smb_EIO(smb_eio_trace_forced_shutdown);
087f757b012985 fs/cifs/link.c       Steve French         2021-04-29  456  
7ffec372458d16 fs/cifs/link.c       Jeff Layton          2010-09-29  457  	tlink = cifs_sb_tlink(cifs_sb);
7ffec372458d16 fs/cifs/link.c       Jeff Layton          2010-09-29  458  	if (IS_ERR(tlink))
7ffec372458d16 fs/cifs/link.c       Jeff Layton          2010-09-29  459  		return PTR_ERR(tlink);
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  460  	tcon = tlink_tcon(tlink);
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  461  
6d5786a34d98bf fs/cifs/link.c       Pavel Shilovsky      2012-06-20  462  	xid = get_xid();
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  463  
d290e116f12405 fs/smb/client/link.c Paulo Alcantara      2026-03-27 @464  	if (old_file && d_really_is_positive(old_file) &&
d290e116f12405 fs/smb/client/link.c Paulo Alcantara      2026-03-27  465  	    test_bit(CIFS_INO_TMPFILE, &CIFS_I(d_inode(old_file))->flags)) {
d290e116f12405 fs/smb/client/link.c Paulo Alcantara      2026-03-27  466  		from_name = NULL;
d290e116f12405 fs/smb/client/link.c Paulo Alcantara      2026-03-27  467  	} else {
d290e116f12405 fs/smb/client/link.c Paulo Alcantara      2026-03-27  468  		page1 = alloc_dentry_path();
f6a9bc336b600e fs/cifs/link.c       Al Viro              2021-03-05  469  		from_name = build_path_from_dentry(old_file, page1);
f6a9bc336b600e fs/cifs/link.c       Al Viro              2021-03-05  470  		if (IS_ERR(from_name)) {
f6a9bc336b600e fs/cifs/link.c       Al Viro              2021-03-05  471  			rc = PTR_ERR(from_name);
f6a9bc336b600e fs/cifs/link.c       Al Viro              2021-03-05  472  			goto cifs_hl_exit;
f6a9bc336b600e fs/cifs/link.c       Al Viro              2021-03-05  473  		}
d290e116f12405 fs/smb/client/link.c Paulo Alcantara      2026-03-27  474  	}
d290e116f12405 fs/smb/client/link.c Paulo Alcantara      2026-03-27  475  
d290e116f12405 fs/smb/client/link.c Paulo Alcantara      2026-03-27  476  	page2 = alloc_dentry_path();
f6a9bc336b600e fs/cifs/link.c       Al Viro              2021-03-05  477  	to_name = build_path_from_dentry(direntry, page2);
f6a9bc336b600e fs/cifs/link.c       Al Viro              2021-03-05  478  	if (IS_ERR(to_name)) {
f6a9bc336b600e fs/cifs/link.c       Al Viro              2021-03-05  479  		rc = PTR_ERR(to_name);
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  480  		goto cifs_hl_exit;
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  481  	}
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  482  
fb157ed226d225 fs/cifs/link.c       Steve French         2022-08-01  483  #ifdef CONFIG_CIFS_ALLOW_INSECURE_LEGACY
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  484  	if (tcon->unix_ext)
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  485  		rc = CIFSUnixCreateHardLink(xid, tcon, from_name, to_name,
7ffec372458d16 fs/cifs/link.c       Jeff Layton          2010-09-29  486  					    cifs_sb->local_nls,
2baa2682531ff0 fs/cifs/link.c       Steve French         2014-09-27  487  					    cifs_remap(cifs_sb));
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  488  	else {
fb157ed226d225 fs/cifs/link.c       Steve French         2022-08-01  489  #else
fb157ed226d225 fs/cifs/link.c       Steve French         2022-08-01  490  	{
fb157ed226d225 fs/cifs/link.c       Steve French         2022-08-01  491  #endif /* CONFIG_CIFS_ALLOW_INSECURE_LEGACY */
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  492  		server = tcon->ses->server;
abf9767c823bf5 fs/cifs/link.c       Christian Engelmayer 2014-01-11  493  		if (!server->ops->create_hardlink) {
abf9767c823bf5 fs/cifs/link.c       Christian Engelmayer 2014-01-11  494  			rc = -ENOSYS;
abf9767c823bf5 fs/cifs/link.c       Christian Engelmayer 2014-01-11  495  			goto cifs_hl_exit;
abf9767c823bf5 fs/cifs/link.c       Christian Engelmayer 2014-01-11  496  		}
5408990aa662bc fs/smb/client/link.c Paulo Alcantara      2023-11-25  497  		rc = server->ops->create_hardlink(xid, tcon, old_file,
5408990aa662bc fs/smb/client/link.c Paulo Alcantara      2023-11-25  498  						  from_name, to_name, cifs_sb);
083d3a2cff514c fs/cifs/link.c       Steve French         2006-03-03  499  		if ((rc == -EIO) || (rc == -EINVAL))
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  500  			rc = -EOPNOTSUPP;
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  501  	}
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  502  
31ec35d6c81175 fs/cifs/link.c       Steve French         2006-11-16  503  	d_drop(direntry);	/* force new lookup from server of target */
31ec35d6c81175 fs/cifs/link.c       Steve French         2006-11-16  504  
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  505  	/*
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  506  	 * if source file is cached (oplocked) revalidate will not go to server
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  507  	 * until the file is closed or oplock broken so update nlinks locally
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  508  	 */
2b0143b5c986be fs/cifs/link.c       David Howells        2015-03-17 @509  	if (d_really_is_positive(old_file)) {
2b0143b5c986be fs/cifs/link.c       David Howells        2015-03-17  510  		cifsInode = CIFS_I(d_inode(old_file));
31ec35d6c81175 fs/cifs/link.c       Steve French         2006-11-16  511  		if (rc == 0) {
d290e116f12405 fs/smb/client/link.c Paulo Alcantara      2026-03-27  512  			clear_bit(CIFS_INO_TMPFILE, &cifsInode->flags);
2b0143b5c986be fs/cifs/link.c       David Howells        2015-03-17  513  			spin_lock(&d_inode(old_file)->i_lock);
2b0143b5c986be fs/cifs/link.c       David Howells        2015-03-17  514  			inc_nlink(d_inode(old_file));
2b0143b5c986be fs/cifs/link.c       David Howells        2015-03-17  515  			spin_unlock(&d_inode(old_file)->i_lock);
ff273cb879fbc6 fs/cifs/link.c       Steve French         2014-10-17  516  
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  517  			/*
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  518  			 * parent dir timestamps will update from srv within a
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  519  			 * second, would it really be worth it to set the parent
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  520  			 * dir cifs inode time to zero to force revalidate
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  521  			 * (faster) for it too?
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  522  			 */
31ec35d6c81175 fs/cifs/link.c       Steve French         2006-11-16  523  		}
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  524  		/*
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  525  		 * if not oplocked will force revalidate to get info on source
ff273cb879fbc6 fs/cifs/link.c       Steve French         2014-10-17  526  		 * file from srv.  Note Samba server prior to 4.2 has bug -
ff273cb879fbc6 fs/cifs/link.c       Steve French         2014-10-17  527  		 * not updating src file ctime on hardlinks but Windows servers
ff273cb879fbc6 fs/cifs/link.c       Steve French         2014-10-17  528  		 * handle it properly
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  529  		 */
31ec35d6c81175 fs/cifs/link.c       Steve French         2006-11-16  530  		cifsInode->time = 0;
31ec35d6c81175 fs/cifs/link.c       Steve French         2006-11-16  531  
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  532  		/*
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  533  		 * Will update parent dir timestamps from srv within a second.
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  534  		 * Would it really be worth it to set the parent dir (cifs
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  535  		 * inode) time field to zero to force revalidate on parent
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  536  		 * directory faster ie
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  537  		 *
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  538  		 * CIFS_I(inode)->time = 0;
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  539  		 */
31ec35d6c81175 fs/cifs/link.c       Steve French         2006-11-16  540  	}
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  541  
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  542  cifs_hl_exit:
f6a9bc336b600e fs/cifs/link.c       Al Viro              2021-03-05  543  	free_dentry_path(page1);
f6a9bc336b600e fs/cifs/link.c       Al Viro              2021-03-05  544  	free_dentry_path(page2);
6d5786a34d98bf fs/cifs/link.c       Pavel Shilovsky      2012-06-20  545  	free_xid(xid);
7ffec372458d16 fs/cifs/link.c       Jeff Layton          2010-09-29  546  	cifs_put_tlink(tlink);
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  547  	return rc;
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  548  }
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  549  

:::::: The code at line 509 was first introduced by commit
:::::: 2b0143b5c986be1ce8408b3aadc4709e0a94429d VFS: normal filesystems (and lustre): d_inode() annotations

:::::: TO: David Howells <dhowells@redhat.com>
:::::: CC: Al Viro <viro@zeniv.linux.org.uk>

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

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <error27@gmail.com>
To: oe-kbuild@lists.linux.dev, Steve French <stfrench@microsoft.com>
Cc: lkp@intel.com, oe-kbuild-all@lists.linux.dev
Subject: [smfrench-smb3:pr/146 1/1] fs/smb/client/link.c:509 cifs_hardlink() error: we previously assumed 'old_file' could be null (see line 464)
Date: Mon, 30 Mar 2026 22:59:32 +0300	[thread overview]
Message-ID: <202603302356.u8QdlRIM-lkp@intel.com> (raw)
Message-ID: <20260330195932.yH6-UpOf3VlugwPadIwlCM9UnKc7y3PcuNfUxcv8L54@z> (raw)

tree:   https://github.com/smfrench/smb3-kernel.git pr/146
head:   d290e116f12405d8269c6041cbf68bc924b4cba6
commit: d290e116f12405d8269c6041cbf68bc924b4cba6 [1/1] smb: client: add support for O_TMPFILE (WIP)
config: x86_64-randconfig-161-20260330 (https://download.01.org/0day-ci/archive/20260330/202603302356.u8QdlRIM-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
smatch: v0.5.0-9004-gb810ac53

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@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202603302356.u8QdlRIM-lkp@intel.com/

smatch warnings:
fs/smb/client/link.c:509 cifs_hardlink() error: we previously assumed 'old_file' could be null (see line 464)

vim +/old_file +509 fs/smb/client/link.c

^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  440  int
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  441  cifs_hardlink(struct dentry *old_file, struct inode *inode,
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  442  	      struct dentry *direntry)
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  443  {
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  444  	int rc = -EACCES;
6d5786a34d98bf fs/cifs/link.c       Pavel Shilovsky      2012-06-20  445  	unsigned int xid;
f6a9bc336b600e fs/cifs/link.c       Al Viro              2021-03-05  446  	const char *from_name, *to_name;
d290e116f12405 fs/smb/client/link.c Paulo Alcantara      2026-03-27  447  	void *page1 = NULL, *page2 = NULL;
7ffec372458d16 fs/cifs/link.c       Jeff Layton          2010-09-29  448  	struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb);
7ffec372458d16 fs/cifs/link.c       Jeff Layton          2010-09-29  449  	struct tcon_link *tlink;
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  450  	struct cifs_tcon *tcon;
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  451  	struct TCP_Server_Info *server;
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  452  	struct cifsInodeInfo *cifsInode;
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  453  
087f757b012985 fs/cifs/link.c       Steve French         2021-04-29  454  	if (unlikely(cifs_forced_shutdown(cifs_sb)))
f80ac7eda1cf52 fs/smb/client/link.c David Howells        2025-10-24  455  		return smb_EIO(smb_eio_trace_forced_shutdown);
087f757b012985 fs/cifs/link.c       Steve French         2021-04-29  456  
7ffec372458d16 fs/cifs/link.c       Jeff Layton          2010-09-29  457  	tlink = cifs_sb_tlink(cifs_sb);
7ffec372458d16 fs/cifs/link.c       Jeff Layton          2010-09-29  458  	if (IS_ERR(tlink))
7ffec372458d16 fs/cifs/link.c       Jeff Layton          2010-09-29  459  		return PTR_ERR(tlink);
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  460  	tcon = tlink_tcon(tlink);
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  461  
6d5786a34d98bf fs/cifs/link.c       Pavel Shilovsky      2012-06-20  462  	xid = get_xid();
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  463  
d290e116f12405 fs/smb/client/link.c Paulo Alcantara      2026-03-27 @464  	if (old_file && d_really_is_positive(old_file) &&
                                                                                    ^^^^^^^^
If old_file is NULL

d290e116f12405 fs/smb/client/link.c Paulo Alcantara      2026-03-27  465  	    test_bit(CIFS_INO_TMPFILE, &CIFS_I(d_inode(old_file))->flags)) {
d290e116f12405 fs/smb/client/link.c Paulo Alcantara      2026-03-27  466  		from_name = NULL;
d290e116f12405 fs/smb/client/link.c Paulo Alcantara      2026-03-27  467  	} else {
d290e116f12405 fs/smb/client/link.c Paulo Alcantara      2026-03-27  468  		page1 = alloc_dentry_path();
f6a9bc336b600e fs/cifs/link.c       Al Viro              2021-03-05  469  		from_name = build_path_from_dentry(old_file, page1);
f6a9bc336b600e fs/cifs/link.c       Al Viro              2021-03-05  470  		if (IS_ERR(from_name)) {
f6a9bc336b600e fs/cifs/link.c       Al Viro              2021-03-05  471  			rc = PTR_ERR(from_name);
f6a9bc336b600e fs/cifs/link.c       Al Viro              2021-03-05  472  			goto cifs_hl_exit;
f6a9bc336b600e fs/cifs/link.c       Al Viro              2021-03-05  473  		}
d290e116f12405 fs/smb/client/link.c Paulo Alcantara      2026-03-27  474  	}
d290e116f12405 fs/smb/client/link.c Paulo Alcantara      2026-03-27  475  
d290e116f12405 fs/smb/client/link.c Paulo Alcantara      2026-03-27  476  	page2 = alloc_dentry_path();
f6a9bc336b600e fs/cifs/link.c       Al Viro              2021-03-05  477  	to_name = build_path_from_dentry(direntry, page2);
f6a9bc336b600e fs/cifs/link.c       Al Viro              2021-03-05  478  	if (IS_ERR(to_name)) {
f6a9bc336b600e fs/cifs/link.c       Al Viro              2021-03-05  479  		rc = PTR_ERR(to_name);
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  480  		goto cifs_hl_exit;
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  481  	}
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  482  
fb157ed226d225 fs/cifs/link.c       Steve French         2022-08-01  483  #ifdef CONFIG_CIFS_ALLOW_INSECURE_LEGACY
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  484  	if (tcon->unix_ext)
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  485  		rc = CIFSUnixCreateHardLink(xid, tcon, from_name, to_name,
7ffec372458d16 fs/cifs/link.c       Jeff Layton          2010-09-29  486  					    cifs_sb->local_nls,
2baa2682531ff0 fs/cifs/link.c       Steve French         2014-09-27  487  					    cifs_remap(cifs_sb));
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  488  	else {
fb157ed226d225 fs/cifs/link.c       Steve French         2022-08-01  489  #else
fb157ed226d225 fs/cifs/link.c       Steve French         2022-08-01  490  	{
fb157ed226d225 fs/cifs/link.c       Steve French         2022-08-01  491  #endif /* CONFIG_CIFS_ALLOW_INSECURE_LEGACY */
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  492  		server = tcon->ses->server;
abf9767c823bf5 fs/cifs/link.c       Christian Engelmayer 2014-01-11  493  		if (!server->ops->create_hardlink) {
abf9767c823bf5 fs/cifs/link.c       Christian Engelmayer 2014-01-11  494  			rc = -ENOSYS;
abf9767c823bf5 fs/cifs/link.c       Christian Engelmayer 2014-01-11  495  			goto cifs_hl_exit;
abf9767c823bf5 fs/cifs/link.c       Christian Engelmayer 2014-01-11  496  		}
5408990aa662bc fs/smb/client/link.c Paulo Alcantara      2023-11-25  497  		rc = server->ops->create_hardlink(xid, tcon, old_file,
5408990aa662bc fs/smb/client/link.c Paulo Alcantara      2023-11-25  498  						  from_name, to_name, cifs_sb);
083d3a2cff514c fs/cifs/link.c       Steve French         2006-03-03  499  		if ((rc == -EIO) || (rc == -EINVAL))
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  500  			rc = -EOPNOTSUPP;
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  501  	}
^1da177e4c3f41 fs/cifs/link.c       Linus Torvalds       2005-04-16  502  
31ec35d6c81175 fs/cifs/link.c       Steve French         2006-11-16  503  	d_drop(direntry);	/* force new lookup from server of target */
31ec35d6c81175 fs/cifs/link.c       Steve French         2006-11-16  504  
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  505  	/*
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  506  	 * if source file is cached (oplocked) revalidate will not go to server
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  507  	 * until the file is closed or oplock broken so update nlinks locally
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  508  	 */
2b0143b5c986be fs/cifs/link.c       David Howells        2015-03-17 @509  	if (d_really_is_positive(old_file)) {
                                                                                                         ^^^^^^^^
Then we are toasted here.  Unchecked dereference.

2b0143b5c986be fs/cifs/link.c       David Howells        2015-03-17  510  		cifsInode = CIFS_I(d_inode(old_file));
31ec35d6c81175 fs/cifs/link.c       Steve French         2006-11-16  511  		if (rc == 0) {
d290e116f12405 fs/smb/client/link.c Paulo Alcantara      2026-03-27  512  			clear_bit(CIFS_INO_TMPFILE, &cifsInode->flags);
2b0143b5c986be fs/cifs/link.c       David Howells        2015-03-17  513  			spin_lock(&d_inode(old_file)->i_lock);
2b0143b5c986be fs/cifs/link.c       David Howells        2015-03-17  514  			inc_nlink(d_inode(old_file));
2b0143b5c986be fs/cifs/link.c       David Howells        2015-03-17  515  			spin_unlock(&d_inode(old_file)->i_lock);
ff273cb879fbc6 fs/cifs/link.c       Steve French         2014-10-17  516  
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  517  			/*
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  518  			 * parent dir timestamps will update from srv within a
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  519  			 * second, would it really be worth it to set the parent
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  520  			 * dir cifs inode time to zero to force revalidate
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  521  			 * (faster) for it too?
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  522  			 */
31ec35d6c81175 fs/cifs/link.c       Steve French         2006-11-16  523  		}
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  524  		/*
d6e906f1b571d1 fs/cifs/link.c       Steve French         2012-09-18  525  		 * if not oplocked will force revalidate to get info on source
ff273cb879fbc6 fs/cifs/link.c       Steve French         2014-10-17  526  		 * file from srv.  Note Samba server prior to 4.2 has bug -
ff273cb879fbc6 fs/cifs/link.c       Steve French         2014-10-17  527  		 * not updating src file ctime on hardlinks but Windows servers
ff273cb879fbc6 fs/cifs/link.c       Steve French         2014-10-17  528  		 * handle it properly

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


             reply	other threads:[~2026-03-30 15:33 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-30 15:32 kernel test robot [this message]
2026-03-30 19:59 ` [smfrench-smb3:pr/146 1/1] fs/smb/client/link.c:509 cifs_hardlink() error: we previously assumed 'old_file' could be null (see line 464) Dan Carpenter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202603302356.u8QdlRIM-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=error27@gmail.com \
    --cc=oe-kbuild@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.