public inbox for ntfs3@lists.linux.dev
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@linaro.org>
To: oe-kbuild@lists.linux.dev,
	Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
Cc: lkp@intel.com, oe-kbuild-all@lists.linux.dev, ntfs3@lists.linux.dev
Subject: [paragon-software-group-ntfs3:devel 7/9] fs/ntfs3/fsntfs.c:1265 ntfs_read_run_nb_ra() error: uninitialized symbol 'clen'.
Date: Mon, 5 Jan 2026 13:33:41 +0300	[thread overview]
Message-ID: <202512230646.v5hrYXL0-lkp@intel.com> (raw)

tree:   https://github.com/Paragon-Software-Group/linux-ntfs3.git devel
head:   f7edab0cee03a1cbe0e55a7bcab8d2d8b6b74278
commit: 989e29450efaf4983c66b7a628f2ffc03b6d02e8 [7/9] fs/ntfs3: improve readahead for bitmap initialization and large directory scans
config: i386-randconfig-141-20251222 (https://download.01.org/0day-ci/archive/20251223/202512230646.v5hrYXL0-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0

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 <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202512230646.v5hrYXL0-lkp@intel.com/

smatch warnings:
fs/ntfs3/fsntfs.c:1265 ntfs_read_run_nb_ra() error: uninitialized symbol 'clen'.
fs/ntfs3/fsntfs.c:1266 ntfs_read_run_nb_ra() error: uninitialized symbol 'idx'.

vim +/clen +1265 fs/ntfs3/fsntfs.c

82cae269cfa9530 Konstantin Komarov 2021-08-13  1166  
989e29450efaf49 Konstantin Komarov 2025-12-08  1167  int ntfs_read_run_nb_ra(struct ntfs_sb_info *sbi, const struct runs_tree *run,
989e29450efaf49 Konstantin Komarov 2025-12-08  1168  			u64 vbo, void *buf, u32 bytes, struct ntfs_buffers *nb,
989e29450efaf49 Konstantin Komarov 2025-12-08  1169  			struct file_ra_state *ra)
82cae269cfa9530 Konstantin Komarov 2021-08-13  1170  {
82cae269cfa9530 Konstantin Komarov 2021-08-13  1171  	int err;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1172  	struct super_block *sb = sbi->sb;
989e29450efaf49 Konstantin Komarov 2025-12-08  1173  	struct address_space *mapping = sb->s_bdev->bd_mapping;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1174  	u32 blocksize = sb->s_blocksize;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1175  	u8 cluster_bits = sbi->cluster_bits;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1176  	u32 off = vbo & sbi->cluster_mask;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1177  	u32 nbh = 0;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1178  	CLST vcn_next, vcn = vbo >> cluster_bits;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1179  	CLST lcn, clen;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1180  	u64 lbo, len;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1181  	size_t idx;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1182  	struct buffer_head *bh;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1183  
82cae269cfa9530 Konstantin Komarov 2021-08-13  1184  	if (!run) {
e8b8e97f91b80f0 Kari Argillander   2021-08-03  1185  		/* First reading of $Volume + $MFTMirr + $LogFile goes here. */
82cae269cfa9530 Konstantin Komarov 2021-08-13  1186  		if (vbo > MFT_REC_VOL * sbi->record_size) {
82cae269cfa9530 Konstantin Komarov 2021-08-13  1187  			err = -ENOENT;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1188  			goto out;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1189  		}
82cae269cfa9530 Konstantin Komarov 2021-08-13  1190  
e8b8e97f91b80f0 Kari Argillander   2021-08-03  1191  		/* Use absolute boot's 'MFTCluster' to read record. */
82cae269cfa9530 Konstantin Komarov 2021-08-13  1192  		lbo = vbo + sbi->mft.lbo;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1193  		len = sbi->record_size;

clen is not initialized when run is false.

82cae269cfa9530 Konstantin Komarov 2021-08-13  1194  	} else if (!run_lookup_entry(run, vcn, &lcn, &clen, &idx)) {
82cae269cfa9530 Konstantin Komarov 2021-08-13  1195  		err = -ENOENT;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1196  		goto out;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1197  	} else {
82cae269cfa9530 Konstantin Komarov 2021-08-13  1198  		if (lcn == SPARSE_LCN) {
82cae269cfa9530 Konstantin Komarov 2021-08-13  1199  			err = -EINVAL;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1200  			goto out;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1201  		}
82cae269cfa9530 Konstantin Komarov 2021-08-13  1202  
82cae269cfa9530 Konstantin Komarov 2021-08-13  1203  		lbo = ((u64)lcn << cluster_bits) + off;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1204  		len = ((u64)clen << cluster_bits) - off;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1205  	}
82cae269cfa9530 Konstantin Komarov 2021-08-13  1206  
82cae269cfa9530 Konstantin Komarov 2021-08-13  1207  	off = lbo & (blocksize - 1);
82cae269cfa9530 Konstantin Komarov 2021-08-13  1208  	if (nb) {
82cae269cfa9530 Konstantin Komarov 2021-08-13  1209  		nb->off = off;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1210  		nb->bytes = bytes;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1211  	}
82cae269cfa9530 Konstantin Komarov 2021-08-13  1212  
989e29450efaf49 Konstantin Komarov 2025-12-08  1213  	if (ra && !ra->ra_pages)
989e29450efaf49 Konstantin Komarov 2025-12-08  1214  		file_ra_state_init(ra, mapping);
989e29450efaf49 Konstantin Komarov 2025-12-08  1215  
82cae269cfa9530 Konstantin Komarov 2021-08-13  1216  	for (;;) {
82cae269cfa9530 Konstantin Komarov 2021-08-13  1217  		u32 len32 = len >= bytes ? bytes : len;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1218  		sector_t block = lbo >> sb->s_blocksize_bits;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1219  
989e29450efaf49 Konstantin Komarov 2025-12-08  1220  		if (ra) {
989e29450efaf49 Konstantin Komarov 2025-12-08  1221  			pgoff_t index = lbo >> PAGE_SHIFT;
989e29450efaf49 Konstantin Komarov 2025-12-08  1222  			if (!ra_has_index(ra, index)) {
989e29450efaf49 Konstantin Komarov 2025-12-08  1223  				page_cache_sync_readahead(mapping, ra, NULL,
989e29450efaf49 Konstantin Komarov 2025-12-08  1224  							  index, 1);
989e29450efaf49 Konstantin Komarov 2025-12-08  1225  				ra->prev_pos = (loff_t)index << PAGE_SHIFT;
989e29450efaf49 Konstantin Komarov 2025-12-08  1226  			}
989e29450efaf49 Konstantin Komarov 2025-12-08  1227  		}
989e29450efaf49 Konstantin Komarov 2025-12-08  1228  
82cae269cfa9530 Konstantin Komarov 2021-08-13  1229  		do {
82cae269cfa9530 Konstantin Komarov 2021-08-13  1230  			u32 op = blocksize - off;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1231  
82cae269cfa9530 Konstantin Komarov 2021-08-13  1232  			if (op > len32)
82cae269cfa9530 Konstantin Komarov 2021-08-13  1233  				op = len32;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1234  
82cae269cfa9530 Konstantin Komarov 2021-08-13  1235  			bh = ntfs_bread(sb, block);
82cae269cfa9530 Konstantin Komarov 2021-08-13  1236  			if (!bh) {
82cae269cfa9530 Konstantin Komarov 2021-08-13  1237  				err = -EIO;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1238  				goto out;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1239  			}
82cae269cfa9530 Konstantin Komarov 2021-08-13  1240  
82cae269cfa9530 Konstantin Komarov 2021-08-13  1241  			if (buf) {
82cae269cfa9530 Konstantin Komarov 2021-08-13  1242  				memcpy(buf, bh->b_data + off, op);
82cae269cfa9530 Konstantin Komarov 2021-08-13  1243  				buf = Add2Ptr(buf, op);
82cae269cfa9530 Konstantin Komarov 2021-08-13  1244  			}
82cae269cfa9530 Konstantin Komarov 2021-08-13  1245  
82cae269cfa9530 Konstantin Komarov 2021-08-13  1246  			if (!nb) {
82cae269cfa9530 Konstantin Komarov 2021-08-13  1247  				put_bh(bh);
82cae269cfa9530 Konstantin Komarov 2021-08-13  1248  			} else if (nbh >= ARRAY_SIZE(nb->bh)) {
82cae269cfa9530 Konstantin Komarov 2021-08-13  1249  				err = -EINVAL;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1250  				goto out;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1251  			} else {
82cae269cfa9530 Konstantin Komarov 2021-08-13  1252  				nb->bh[nbh++] = bh;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1253  				nb->nbufs = nbh;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1254  			}
82cae269cfa9530 Konstantin Komarov 2021-08-13  1255  
82cae269cfa9530 Konstantin Komarov 2021-08-13  1256  			bytes -= op;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1257  			if (!bytes)
82cae269cfa9530 Konstantin Komarov 2021-08-13  1258  				return 0;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1259  			len32 -= op;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1260  			block += 1;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1261  			off = 0;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1262  
82cae269cfa9530 Konstantin Komarov 2021-08-13  1263  		} while (len32);
82cae269cfa9530 Konstantin Komarov 2021-08-13  1264  
82cae269cfa9530 Konstantin Komarov 2021-08-13 @1265  		vcn_next = vcn + clen;
                                                                                 ^^^^
Uninitialized.

82cae269cfa9530 Konstantin Komarov 2021-08-13 @1266  		if (!run_get_entry(run, ++idx, &vcn, &lcn, &clen) ||
82cae269cfa9530 Konstantin Komarov 2021-08-13  1267  		    vcn != vcn_next) {
82cae269cfa9530 Konstantin Komarov 2021-08-13  1268  			err = -ENOENT;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1269  			goto out;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1270  		}
82cae269cfa9530 Konstantin Komarov 2021-08-13  1271  
82cae269cfa9530 Konstantin Komarov 2021-08-13  1272  		if (lcn == SPARSE_LCN) {
82cae269cfa9530 Konstantin Komarov 2021-08-13  1273  			err = -EINVAL;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1274  			goto out;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1275  		}
82cae269cfa9530 Konstantin Komarov 2021-08-13  1276  
82cae269cfa9530 Konstantin Komarov 2021-08-13  1277  		lbo = ((u64)lcn << cluster_bits);
82cae269cfa9530 Konstantin Komarov 2021-08-13  1278  		len = ((u64)clen << cluster_bits);
82cae269cfa9530 Konstantin Komarov 2021-08-13  1279  	}
82cae269cfa9530 Konstantin Komarov 2021-08-13  1280  
82cae269cfa9530 Konstantin Komarov 2021-08-13  1281  out:
82cae269cfa9530 Konstantin Komarov 2021-08-13  1282  	if (!nbh)
82cae269cfa9530 Konstantin Komarov 2021-08-13  1283  		return err;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1284  
82cae269cfa9530 Konstantin Komarov 2021-08-13  1285  	while (nbh) {
82cae269cfa9530 Konstantin Komarov 2021-08-13  1286  		put_bh(nb->bh[--nbh]);
82cae269cfa9530 Konstantin Komarov 2021-08-13  1287  		nb->bh[nbh] = NULL;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1288  	}
82cae269cfa9530 Konstantin Komarov 2021-08-13  1289  
82cae269cfa9530 Konstantin Komarov 2021-08-13  1290  	nb->nbufs = 0;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1291  	return err;
82cae269cfa9530 Konstantin Komarov 2021-08-13  1292  }

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


                 reply	other threads:[~2026-01-05 11:13 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=202512230646.v5hrYXL0-lkp@intel.com \
    --to=dan.carpenter@linaro.org \
    --cc=almaz.alexandrovich@paragon-software.com \
    --cc=lkp@intel.com \
    --cc=ntfs3@lists.linux.dev \
    --cc=oe-kbuild-all@lists.linux.dev \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox