All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org
Subject: Re: [PATCH v11 09/10] fs/ntfs3: Add NTFS3 in fs/Kconfig and fs/Makefile
Date: Mon, 02 Nov 2020 11:36:04 +0300	[thread overview]
Message-ID: <20201102083604.GT18329@kadam> (raw)
In-Reply-To: <20201030150239.3957156-10-almaz.alexandrovich@paragon-software.com>

[-- Attachment #1: Type: text/plain, Size: 12189 bytes --]

Hi Konstantin,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.10-rc2 next-20201030]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch ]

url:    https://github.com/0day-ci/linux/commits/Konstantin-Komarov/NTFS-read-write-driver-GPL-implementation-by-Paragon-Software/20201031-220904 
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git  5fc6b075e165f641fbc366b58b578055762d5f8c
config: i386-randconfig-m021-20201101 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
fs/ntfs3/attrib.c:331 attr_set_size_res() error: dereferencing freed memory 'attr_s'
fs/ntfs3/attrib.c:1267 attr_allocate_frame() error: uninitialized symbol 'hint'.
fs/ntfs3/attrib.c:1393 attr_allocate_frame() error: we previously assumed 'attr_b' could be null (see line 1306)
fs/ntfs3/namei.c:438 ntfs_rename() warn: variable dereferenced before check 'old_inode' (see line 296)
fs/ntfs3/fsntfs.c:844 ntfs_clear_mft_tail() error: uninitialized symbol 'err'.
fs/ntfs3/fsntfs.c:1294 ntfs_read_run_nb() error: uninitialized symbol 'idx'.
fs/ntfs3/frecord.c:166 ni_load_mi_ex() error: we previously assumed 'r' could be null (see line 159)
fs/ntfs3/frecord.c:505 ni_ins_new_attr() error: we previously assumed 'le' could be null (see line 490)
fs/ntfs3/frecord.c:658 ni_repack() warn: 'run.runs_' double freed
fs/ntfs3/frecord.c:1439 ni_insert_nonresident() warn: potential memory corrupting cast 8 vs 2 bytes
fs/ntfs3/frecord.c:2214 ni_read_frame() warn: ignoring unreachable code.
fs/ntfs3/xattr.c:514 ntfs_get_acl_ex() warn: passing zero to 'ERR_PTR'
fs/ntfs3/index.c:1133 indx_find() warn: variable dereferenced before check 'fnd' (see line 1117)
fs/ntfs3/index.c:1371 indx_find_raw() error: we previously assumed 'n' could be null (see line 1349)
fs/ntfs3/index.c:1404 indx_create_allocate() warn: should '1 << indx->index_bits' be a 64 bit type?
fs/ntfs3/index.c:1755 indx_insert_into_root() warn: possible memory leak of 're'
fs/ntfs3/index.c:549 hdr_find_split() warn: variable dereferenced before check 'e' (see line 547)
fs/ntfs3/inode.c:687 ntfs_readpage() warn: should 'page->index << 12' be a 64 bit type?
fs/ntfs3/fslog.c:2205 last_log_lsn() warn: possible memory leak of 'page_bufs'
fs/ntfs3/fslog.c:2418 find_log_rec() error: we previously assumed 'rh' could be null (see line 2404)
fs/ntfs3/fslog.c:2551 find_client_next_lsn() error: double free of 'lcb->lrh'
fs/ntfs3/fslog.c:639 enum_rstbl() error: we previously assumed 't' could be null (see line 628)
fs/ntfs3/fslog.c:3158 do_action() warn: variable dereferenced before check 'mi' (see line 3118)
fs/ntfs3/fslog.c:3913 log_replay() error: dereferencing freed memory 'rst_info.r_page'

vim +/attr_s +331 fs/ntfs3/attrib.c

e3a1cdcc648083 Konstantin Komarov 2020-10-30  241  static int attr_set_size_res(struct ntfs_inode *ni, struct ATTRIB *attr,
e3a1cdcc648083 Konstantin Komarov 2020-10-30  242  			     struct ATTR_LIST_ENTRY *le, struct mft_inode *mi,
e3a1cdcc648083 Konstantin Komarov 2020-10-30  243  			     u64 new_size, struct runs_tree *run,
e3a1cdcc648083 Konstantin Komarov 2020-10-30  244  			     struct ATTRIB **ins_attr)
e3a1cdcc648083 Konstantin Komarov 2020-10-30  245  {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  246  	int err = 0;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  247  	struct ntfs_sb_info *sbi = mi->sbi;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  248  	struct MFT_REC *rec = mi->mrec;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  249  	u32 used = le32_to_cpu(rec->used);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  250  	u32 asize = le32_to_cpu(attr->size);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  251  	u32 aoff = PtrOffset(rec, attr);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  252  	u32 rsize = le32_to_cpu(attr->res.data_size);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  253  	u32 tail = used - aoff - asize;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  254  	char *next = Add2Ptr(attr, asize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  255  	int dsize = QuadAlign(new_size) - QuadAlign(rsize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  256  	CLST len, alen;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  257  	struct ATTRIB *attr_s = NULL;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  258  	bool is_ext;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  259  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  260  	if (dsize < 0) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  261  		memmove(next + dsize, next, tail);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  262  	} else if (dsize > 0) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  263  		if (used + dsize > sbi->max_bytes_per_attr)
e3a1cdcc648083 Konstantin Komarov 2020-10-30  264  			goto resident2nonresident;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  265  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  266  		memmove(next + dsize, next, tail);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  267  		memset(next, 0, dsize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  268  	}
e3a1cdcc648083 Konstantin Komarov 2020-10-30  269  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  270  	rec->used = cpu_to_le32(used + dsize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  271  	attr->size = cpu_to_le32(asize + dsize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  272  	attr->res.data_size = cpu_to_le32(new_size);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  273  	mi->dirty = true;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  274  	*ins_attr = attr;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  275  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  276  	return 0;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  277  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  278  resident2nonresident:
e3a1cdcc648083 Konstantin Komarov 2020-10-30  279  	len = bytes_to_cluster(sbi, rsize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  280  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  281  	run_init(run);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  282  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  283  	is_ext = is_attr_ext(attr);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  284  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  285  	if (!len) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  286  		alen = 0;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  287  	} else if (is_ext) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  288  		if (!run_add_entry(run, 0, SPARSE_LCN, len)) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  289  			err = -ENOMEM;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  290  			goto out;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  291  		}
e3a1cdcc648083 Konstantin Komarov 2020-10-30  292  		alen = len;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  293  	} else {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  294  		err = attr_allocate_clusters(sbi, run, 0, 0, len, NULL,
e3a1cdcc648083 Konstantin Komarov 2020-10-30  295  					     ALLOCATE_DEF, &alen, 0, NULL);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  296  		if (err)
e3a1cdcc648083 Konstantin Komarov 2020-10-30  297  			goto out;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  298  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  299  		err = ntfs_sb_write_run(sbi, run, 0, resident_data(attr),
e3a1cdcc648083 Konstantin Komarov 2020-10-30  300  					rsize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  301  		if (err)
e3a1cdcc648083 Konstantin Komarov 2020-10-30  302  			goto out;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  303  	}
e3a1cdcc648083 Konstantin Komarov 2020-10-30  304  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  305  	attr_s = ntfs_memdup(attr, asize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  306  	if (!attr_s) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  307  		err = -ENOMEM;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  308  		goto out;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  309  	}
e3a1cdcc648083 Konstantin Komarov 2020-10-30  310  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  311  	/*verify(mi_remove_attr(mi, attr));*/
e3a1cdcc648083 Konstantin Komarov 2020-10-30  312  	used -= asize;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  313  	memmove(attr, Add2Ptr(attr, asize), used - aoff);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  314  	rec->used = cpu_to_le32(used);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  315  	mi->dirty = true;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  316  	if (le)
e3a1cdcc648083 Konstantin Komarov 2020-10-30  317  		al_remove_le(ni, le);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  318  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  319  	err = ni_insert_nonresident(ni, attr_s->type, attr_name(attr_s),
e3a1cdcc648083 Konstantin Komarov 2020-10-30  320  				    attr_s->name_len, run, 0, alen,
e3a1cdcc648083 Konstantin Komarov 2020-10-30  321  				    attr_s->flags, &attr, NULL);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  322  	if (err)
e3a1cdcc648083 Konstantin Komarov 2020-10-30  323  		goto out;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  324  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  325  	ntfs_free(attr_s);
                                                        ^^^^^^^^^^^^^^^^^
Freed.

e3a1cdcc648083 Konstantin Komarov 2020-10-30  326  	attr->nres.data_size = cpu_to_le64(rsize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  327  	attr->nres.valid_size = attr->nres.data_size;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  328  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  329  	*ins_attr = attr;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  330  
e3a1cdcc648083 Konstantin Komarov 2020-10-30 @331  	if (attr_s->type == ATTR_DATA && !attr_s->name_len &&
                                                            ^^^^^^^^^^^^                  ^^^^^^^^^^^^^^^^
Dereferenced after a free.

e3a1cdcc648083 Konstantin Komarov 2020-10-30  332  	    run == &ni->file.run) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  333  		ni->ni_flags &= ~NI_FLAG_RESIDENT;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  334  	}
e3a1cdcc648083 Konstantin Komarov 2020-10-30  335  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  336  	/* Resident attribute becomes non resident */
e3a1cdcc648083 Konstantin Komarov 2020-10-30  337  	return 0;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  338  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  339  out:
e3a1cdcc648083 Konstantin Komarov 2020-10-30  340  	/* undo: do not trim new allocated clusters */
e3a1cdcc648083 Konstantin Komarov 2020-10-30  341  	run_deallocate(sbi, run, false);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  342  	run_close(run);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  343  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  344  	if (attr_s) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  345  		memmove(next, Add2Ptr(rec, aoff), used - aoff);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  346  		memcpy(Add2Ptr(rec, aoff), attr_s, asize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  347  		rec->used = cpu_to_le32(used + asize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  348  		mi->dirty = true;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  349  		ntfs_free(attr_s);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  350  		/*reinsert le*/
e3a1cdcc648083 Konstantin Komarov 2020-10-30  351  	}
e3a1cdcc648083 Konstantin Komarov 2020-10-30  352  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  353  	return err;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  354  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org 

_______________________________________________
kbuild mailing list -- kbuild(a)lists.01.org
To unsubscribe send an email to kbuild-leave(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32884 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: [kbuild] Re: [PATCH v11 09/10] fs/ntfs3: Add NTFS3 in fs/Kconfig and fs/Makefile
Date: Mon, 02 Nov 2020 11:36:04 +0300	[thread overview]
Message-ID: <20201102083604.GT18329@kadam> (raw)
In-Reply-To: <20201030150239.3957156-10-almaz.alexandrovich@paragon-software.com>

[-- Attachment #1: Type: text/plain, Size: 12189 bytes --]

Hi Konstantin,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.10-rc2 next-20201030]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch ]

url:    https://github.com/0day-ci/linux/commits/Konstantin-Komarov/NTFS-read-write-driver-GPL-implementation-by-Paragon-Software/20201031-220904 
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git  5fc6b075e165f641fbc366b58b578055762d5f8c
config: i386-randconfig-m021-20201101 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
fs/ntfs3/attrib.c:331 attr_set_size_res() error: dereferencing freed memory 'attr_s'
fs/ntfs3/attrib.c:1267 attr_allocate_frame() error: uninitialized symbol 'hint'.
fs/ntfs3/attrib.c:1393 attr_allocate_frame() error: we previously assumed 'attr_b' could be null (see line 1306)
fs/ntfs3/namei.c:438 ntfs_rename() warn: variable dereferenced before check 'old_inode' (see line 296)
fs/ntfs3/fsntfs.c:844 ntfs_clear_mft_tail() error: uninitialized symbol 'err'.
fs/ntfs3/fsntfs.c:1294 ntfs_read_run_nb() error: uninitialized symbol 'idx'.
fs/ntfs3/frecord.c:166 ni_load_mi_ex() error: we previously assumed 'r' could be null (see line 159)
fs/ntfs3/frecord.c:505 ni_ins_new_attr() error: we previously assumed 'le' could be null (see line 490)
fs/ntfs3/frecord.c:658 ni_repack() warn: 'run.runs_' double freed
fs/ntfs3/frecord.c:1439 ni_insert_nonresident() warn: potential memory corrupting cast 8 vs 2 bytes
fs/ntfs3/frecord.c:2214 ni_read_frame() warn: ignoring unreachable code.
fs/ntfs3/xattr.c:514 ntfs_get_acl_ex() warn: passing zero to 'ERR_PTR'
fs/ntfs3/index.c:1133 indx_find() warn: variable dereferenced before check 'fnd' (see line 1117)
fs/ntfs3/index.c:1371 indx_find_raw() error: we previously assumed 'n' could be null (see line 1349)
fs/ntfs3/index.c:1404 indx_create_allocate() warn: should '1 << indx->index_bits' be a 64 bit type?
fs/ntfs3/index.c:1755 indx_insert_into_root() warn: possible memory leak of 're'
fs/ntfs3/index.c:549 hdr_find_split() warn: variable dereferenced before check 'e' (see line 547)
fs/ntfs3/inode.c:687 ntfs_readpage() warn: should 'page->index << 12' be a 64 bit type?
fs/ntfs3/fslog.c:2205 last_log_lsn() warn: possible memory leak of 'page_bufs'
fs/ntfs3/fslog.c:2418 find_log_rec() error: we previously assumed 'rh' could be null (see line 2404)
fs/ntfs3/fslog.c:2551 find_client_next_lsn() error: double free of 'lcb->lrh'
fs/ntfs3/fslog.c:639 enum_rstbl() error: we previously assumed 't' could be null (see line 628)
fs/ntfs3/fslog.c:3158 do_action() warn: variable dereferenced before check 'mi' (see line 3118)
fs/ntfs3/fslog.c:3913 log_replay() error: dereferencing freed memory 'rst_info.r_page'

vim +/attr_s +331 fs/ntfs3/attrib.c

e3a1cdcc648083 Konstantin Komarov 2020-10-30  241  static int attr_set_size_res(struct ntfs_inode *ni, struct ATTRIB *attr,
e3a1cdcc648083 Konstantin Komarov 2020-10-30  242  			     struct ATTR_LIST_ENTRY *le, struct mft_inode *mi,
e3a1cdcc648083 Konstantin Komarov 2020-10-30  243  			     u64 new_size, struct runs_tree *run,
e3a1cdcc648083 Konstantin Komarov 2020-10-30  244  			     struct ATTRIB **ins_attr)
e3a1cdcc648083 Konstantin Komarov 2020-10-30  245  {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  246  	int err = 0;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  247  	struct ntfs_sb_info *sbi = mi->sbi;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  248  	struct MFT_REC *rec = mi->mrec;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  249  	u32 used = le32_to_cpu(rec->used);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  250  	u32 asize = le32_to_cpu(attr->size);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  251  	u32 aoff = PtrOffset(rec, attr);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  252  	u32 rsize = le32_to_cpu(attr->res.data_size);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  253  	u32 tail = used - aoff - asize;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  254  	char *next = Add2Ptr(attr, asize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  255  	int dsize = QuadAlign(new_size) - QuadAlign(rsize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  256  	CLST len, alen;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  257  	struct ATTRIB *attr_s = NULL;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  258  	bool is_ext;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  259  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  260  	if (dsize < 0) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  261  		memmove(next + dsize, next, tail);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  262  	} else if (dsize > 0) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  263  		if (used + dsize > sbi->max_bytes_per_attr)
e3a1cdcc648083 Konstantin Komarov 2020-10-30  264  			goto resident2nonresident;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  265  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  266  		memmove(next + dsize, next, tail);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  267  		memset(next, 0, dsize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  268  	}
e3a1cdcc648083 Konstantin Komarov 2020-10-30  269  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  270  	rec->used = cpu_to_le32(used + dsize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  271  	attr->size = cpu_to_le32(asize + dsize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  272  	attr->res.data_size = cpu_to_le32(new_size);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  273  	mi->dirty = true;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  274  	*ins_attr = attr;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  275  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  276  	return 0;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  277  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  278  resident2nonresident:
e3a1cdcc648083 Konstantin Komarov 2020-10-30  279  	len = bytes_to_cluster(sbi, rsize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  280  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  281  	run_init(run);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  282  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  283  	is_ext = is_attr_ext(attr);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  284  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  285  	if (!len) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  286  		alen = 0;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  287  	} else if (is_ext) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  288  		if (!run_add_entry(run, 0, SPARSE_LCN, len)) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  289  			err = -ENOMEM;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  290  			goto out;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  291  		}
e3a1cdcc648083 Konstantin Komarov 2020-10-30  292  		alen = len;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  293  	} else {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  294  		err = attr_allocate_clusters(sbi, run, 0, 0, len, NULL,
e3a1cdcc648083 Konstantin Komarov 2020-10-30  295  					     ALLOCATE_DEF, &alen, 0, NULL);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  296  		if (err)
e3a1cdcc648083 Konstantin Komarov 2020-10-30  297  			goto out;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  298  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  299  		err = ntfs_sb_write_run(sbi, run, 0, resident_data(attr),
e3a1cdcc648083 Konstantin Komarov 2020-10-30  300  					rsize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  301  		if (err)
e3a1cdcc648083 Konstantin Komarov 2020-10-30  302  			goto out;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  303  	}
e3a1cdcc648083 Konstantin Komarov 2020-10-30  304  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  305  	attr_s = ntfs_memdup(attr, asize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  306  	if (!attr_s) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  307  		err = -ENOMEM;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  308  		goto out;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  309  	}
e3a1cdcc648083 Konstantin Komarov 2020-10-30  310  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  311  	/*verify(mi_remove_attr(mi, attr));*/
e3a1cdcc648083 Konstantin Komarov 2020-10-30  312  	used -= asize;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  313  	memmove(attr, Add2Ptr(attr, asize), used - aoff);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  314  	rec->used = cpu_to_le32(used);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  315  	mi->dirty = true;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  316  	if (le)
e3a1cdcc648083 Konstantin Komarov 2020-10-30  317  		al_remove_le(ni, le);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  318  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  319  	err = ni_insert_nonresident(ni, attr_s->type, attr_name(attr_s),
e3a1cdcc648083 Konstantin Komarov 2020-10-30  320  				    attr_s->name_len, run, 0, alen,
e3a1cdcc648083 Konstantin Komarov 2020-10-30  321  				    attr_s->flags, &attr, NULL);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  322  	if (err)
e3a1cdcc648083 Konstantin Komarov 2020-10-30  323  		goto out;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  324  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  325  	ntfs_free(attr_s);
                                                        ^^^^^^^^^^^^^^^^^
Freed.

e3a1cdcc648083 Konstantin Komarov 2020-10-30  326  	attr->nres.data_size = cpu_to_le64(rsize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  327  	attr->nres.valid_size = attr->nres.data_size;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  328  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  329  	*ins_attr = attr;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  330  
e3a1cdcc648083 Konstantin Komarov 2020-10-30 @331  	if (attr_s->type == ATTR_DATA && !attr_s->name_len &&
                                                            ^^^^^^^^^^^^                  ^^^^^^^^^^^^^^^^
Dereferenced after a free.

e3a1cdcc648083 Konstantin Komarov 2020-10-30  332  	    run == &ni->file.run) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  333  		ni->ni_flags &= ~NI_FLAG_RESIDENT;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  334  	}
e3a1cdcc648083 Konstantin Komarov 2020-10-30  335  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  336  	/* Resident attribute becomes non resident */
e3a1cdcc648083 Konstantin Komarov 2020-10-30  337  	return 0;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  338  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  339  out:
e3a1cdcc648083 Konstantin Komarov 2020-10-30  340  	/* undo: do not trim new allocated clusters */
e3a1cdcc648083 Konstantin Komarov 2020-10-30  341  	run_deallocate(sbi, run, false);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  342  	run_close(run);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  343  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  344  	if (attr_s) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  345  		memmove(next, Add2Ptr(rec, aoff), used - aoff);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  346  		memcpy(Add2Ptr(rec, aoff), attr_s, asize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  347  		rec->used = cpu_to_le32(used + asize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  348  		mi->dirty = true;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  349  		ntfs_free(attr_s);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  350  		/*reinsert le*/
e3a1cdcc648083 Konstantin Komarov 2020-10-30  351  	}
e3a1cdcc648083 Konstantin Komarov 2020-10-30  352  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  353  	return err;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  354  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org 

_______________________________________________
kbuild mailing list -- kbuild(a)lists.01.org
To unsubscribe send an email to kbuild-leave(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32884 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org,
	Konstantin Komarov <almaz.alexandrovich@paragon-software.com>,
	linux-fsdevel@vger.kernel.org
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>,
	kbuild-all@lists.01.org, viro@zeniv.linux.org.uk,
	linux-kernel@vger.kernel.org, pali@kernel.org, dsterba@suse.cz,
	aaptel@suse.com, willy@infradead.org, rdunlap@infradead.org,
	joe@perches.com, mark@harmstone.com
Subject: [kbuild] Re: [PATCH v11 09/10] fs/ntfs3: Add NTFS3 in fs/Kconfig and fs/Makefile
Date: Mon, 2 Nov 2020 11:36:04 +0300	[thread overview]
Message-ID: <20201102083604.GT18329@kadam> (raw)
In-Reply-To: <20201030150239.3957156-10-almaz.alexandrovich@paragon-software.com>

[-- Attachment #1: Type: text/plain, Size: 11858 bytes --]

Hi Konstantin,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.10-rc2 next-20201030]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch ]

url:    https://github.com/0day-ci/linux/commits/Konstantin-Komarov/NTFS-read-write-driver-GPL-implementation-by-Paragon-Software/20201031-220904 
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git  5fc6b075e165f641fbc366b58b578055762d5f8c
config: i386-randconfig-m021-20201101 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
fs/ntfs3/attrib.c:331 attr_set_size_res() error: dereferencing freed memory 'attr_s'
fs/ntfs3/attrib.c:1267 attr_allocate_frame() error: uninitialized symbol 'hint'.
fs/ntfs3/attrib.c:1393 attr_allocate_frame() error: we previously assumed 'attr_b' could be null (see line 1306)
fs/ntfs3/namei.c:438 ntfs_rename() warn: variable dereferenced before check 'old_inode' (see line 296)
fs/ntfs3/fsntfs.c:844 ntfs_clear_mft_tail() error: uninitialized symbol 'err'.
fs/ntfs3/fsntfs.c:1294 ntfs_read_run_nb() error: uninitialized symbol 'idx'.
fs/ntfs3/frecord.c:166 ni_load_mi_ex() error: we previously assumed 'r' could be null (see line 159)
fs/ntfs3/frecord.c:505 ni_ins_new_attr() error: we previously assumed 'le' could be null (see line 490)
fs/ntfs3/frecord.c:658 ni_repack() warn: 'run.runs_' double freed
fs/ntfs3/frecord.c:1439 ni_insert_nonresident() warn: potential memory corrupting cast 8 vs 2 bytes
fs/ntfs3/frecord.c:2214 ni_read_frame() warn: ignoring unreachable code.
fs/ntfs3/xattr.c:514 ntfs_get_acl_ex() warn: passing zero to 'ERR_PTR'
fs/ntfs3/index.c:1133 indx_find() warn: variable dereferenced before check 'fnd' (see line 1117)
fs/ntfs3/index.c:1371 indx_find_raw() error: we previously assumed 'n' could be null (see line 1349)
fs/ntfs3/index.c:1404 indx_create_allocate() warn: should '1 << indx->index_bits' be a 64 bit type?
fs/ntfs3/index.c:1755 indx_insert_into_root() warn: possible memory leak of 're'
fs/ntfs3/index.c:549 hdr_find_split() warn: variable dereferenced before check 'e' (see line 547)
fs/ntfs3/inode.c:687 ntfs_readpage() warn: should 'page->index << 12' be a 64 bit type?
fs/ntfs3/fslog.c:2205 last_log_lsn() warn: possible memory leak of 'page_bufs'
fs/ntfs3/fslog.c:2418 find_log_rec() error: we previously assumed 'rh' could be null (see line 2404)
fs/ntfs3/fslog.c:2551 find_client_next_lsn() error: double free of 'lcb->lrh'
fs/ntfs3/fslog.c:639 enum_rstbl() error: we previously assumed 't' could be null (see line 628)
fs/ntfs3/fslog.c:3158 do_action() warn: variable dereferenced before check 'mi' (see line 3118)
fs/ntfs3/fslog.c:3913 log_replay() error: dereferencing freed memory 'rst_info.r_page'

vim +/attr_s +331 fs/ntfs3/attrib.c

e3a1cdcc648083 Konstantin Komarov 2020-10-30  241  static int attr_set_size_res(struct ntfs_inode *ni, struct ATTRIB *attr,
e3a1cdcc648083 Konstantin Komarov 2020-10-30  242  			     struct ATTR_LIST_ENTRY *le, struct mft_inode *mi,
e3a1cdcc648083 Konstantin Komarov 2020-10-30  243  			     u64 new_size, struct runs_tree *run,
e3a1cdcc648083 Konstantin Komarov 2020-10-30  244  			     struct ATTRIB **ins_attr)
e3a1cdcc648083 Konstantin Komarov 2020-10-30  245  {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  246  	int err = 0;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  247  	struct ntfs_sb_info *sbi = mi->sbi;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  248  	struct MFT_REC *rec = mi->mrec;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  249  	u32 used = le32_to_cpu(rec->used);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  250  	u32 asize = le32_to_cpu(attr->size);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  251  	u32 aoff = PtrOffset(rec, attr);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  252  	u32 rsize = le32_to_cpu(attr->res.data_size);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  253  	u32 tail = used - aoff - asize;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  254  	char *next = Add2Ptr(attr, asize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  255  	int dsize = QuadAlign(new_size) - QuadAlign(rsize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  256  	CLST len, alen;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  257  	struct ATTRIB *attr_s = NULL;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  258  	bool is_ext;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  259  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  260  	if (dsize < 0) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  261  		memmove(next + dsize, next, tail);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  262  	} else if (dsize > 0) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  263  		if (used + dsize > sbi->max_bytes_per_attr)
e3a1cdcc648083 Konstantin Komarov 2020-10-30  264  			goto resident2nonresident;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  265  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  266  		memmove(next + dsize, next, tail);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  267  		memset(next, 0, dsize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  268  	}
e3a1cdcc648083 Konstantin Komarov 2020-10-30  269  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  270  	rec->used = cpu_to_le32(used + dsize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  271  	attr->size = cpu_to_le32(asize + dsize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  272  	attr->res.data_size = cpu_to_le32(new_size);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  273  	mi->dirty = true;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  274  	*ins_attr = attr;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  275  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  276  	return 0;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  277  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  278  resident2nonresident:
e3a1cdcc648083 Konstantin Komarov 2020-10-30  279  	len = bytes_to_cluster(sbi, rsize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  280  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  281  	run_init(run);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  282  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  283  	is_ext = is_attr_ext(attr);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  284  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  285  	if (!len) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  286  		alen = 0;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  287  	} else if (is_ext) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  288  		if (!run_add_entry(run, 0, SPARSE_LCN, len)) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  289  			err = -ENOMEM;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  290  			goto out;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  291  		}
e3a1cdcc648083 Konstantin Komarov 2020-10-30  292  		alen = len;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  293  	} else {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  294  		err = attr_allocate_clusters(sbi, run, 0, 0, len, NULL,
e3a1cdcc648083 Konstantin Komarov 2020-10-30  295  					     ALLOCATE_DEF, &alen, 0, NULL);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  296  		if (err)
e3a1cdcc648083 Konstantin Komarov 2020-10-30  297  			goto out;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  298  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  299  		err = ntfs_sb_write_run(sbi, run, 0, resident_data(attr),
e3a1cdcc648083 Konstantin Komarov 2020-10-30  300  					rsize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  301  		if (err)
e3a1cdcc648083 Konstantin Komarov 2020-10-30  302  			goto out;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  303  	}
e3a1cdcc648083 Konstantin Komarov 2020-10-30  304  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  305  	attr_s = ntfs_memdup(attr, asize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  306  	if (!attr_s) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  307  		err = -ENOMEM;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  308  		goto out;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  309  	}
e3a1cdcc648083 Konstantin Komarov 2020-10-30  310  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  311  	/*verify(mi_remove_attr(mi, attr));*/
e3a1cdcc648083 Konstantin Komarov 2020-10-30  312  	used -= asize;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  313  	memmove(attr, Add2Ptr(attr, asize), used - aoff);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  314  	rec->used = cpu_to_le32(used);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  315  	mi->dirty = true;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  316  	if (le)
e3a1cdcc648083 Konstantin Komarov 2020-10-30  317  		al_remove_le(ni, le);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  318  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  319  	err = ni_insert_nonresident(ni, attr_s->type, attr_name(attr_s),
e3a1cdcc648083 Konstantin Komarov 2020-10-30  320  				    attr_s->name_len, run, 0, alen,
e3a1cdcc648083 Konstantin Komarov 2020-10-30  321  				    attr_s->flags, &attr, NULL);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  322  	if (err)
e3a1cdcc648083 Konstantin Komarov 2020-10-30  323  		goto out;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  324  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  325  	ntfs_free(attr_s);
                                                        ^^^^^^^^^^^^^^^^^
Freed.

e3a1cdcc648083 Konstantin Komarov 2020-10-30  326  	attr->nres.data_size = cpu_to_le64(rsize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  327  	attr->nres.valid_size = attr->nres.data_size;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  328  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  329  	*ins_attr = attr;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  330  
e3a1cdcc648083 Konstantin Komarov 2020-10-30 @331  	if (attr_s->type == ATTR_DATA && !attr_s->name_len &&
                                                            ^^^^^^^^^^^^                  ^^^^^^^^^^^^^^^^
Dereferenced after a free.

e3a1cdcc648083 Konstantin Komarov 2020-10-30  332  	    run == &ni->file.run) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  333  		ni->ni_flags &= ~NI_FLAG_RESIDENT;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  334  	}
e3a1cdcc648083 Konstantin Komarov 2020-10-30  335  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  336  	/* Resident attribute becomes non resident */
e3a1cdcc648083 Konstantin Komarov 2020-10-30  337  	return 0;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  338  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  339  out:
e3a1cdcc648083 Konstantin Komarov 2020-10-30  340  	/* undo: do not trim new allocated clusters */
e3a1cdcc648083 Konstantin Komarov 2020-10-30  341  	run_deallocate(sbi, run, false);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  342  	run_close(run);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  343  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  344  	if (attr_s) {
e3a1cdcc648083 Konstantin Komarov 2020-10-30  345  		memmove(next, Add2Ptr(rec, aoff), used - aoff);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  346  		memcpy(Add2Ptr(rec, aoff), attr_s, asize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  347  		rec->used = cpu_to_le32(used + asize);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  348  		mi->dirty = true;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  349  		ntfs_free(attr_s);
e3a1cdcc648083 Konstantin Komarov 2020-10-30  350  		/*reinsert le*/
e3a1cdcc648083 Konstantin Komarov 2020-10-30  351  	}
e3a1cdcc648083 Konstantin Komarov 2020-10-30  352  
e3a1cdcc648083 Konstantin Komarov 2020-10-30  353  	return err;
e3a1cdcc648083 Konstantin Komarov 2020-10-30  354  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org 

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 32884 bytes --]

[-- Attachment #3: Type: text/plain, Size: 149 bytes --]

_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-leave@lists.01.org

  parent reply	other threads:[~2020-11-02  8:36 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-30 15:02 [PATCH v11 00/10] NTFS read-write driver GPL implementation by Paragon Software Konstantin Komarov
2020-10-30 15:02 ` [PATCH v11 01/10] fs/ntfs3: Add headers and misc files Konstantin Komarov
2020-10-30 15:02 ` [PATCH v11 02/10] fs/ntfs3: Add initialization of super block Konstantin Komarov
2020-10-30 15:02 ` [PATCH v11 03/10] fs/ntfs3: Add bitmap Konstantin Komarov
2020-10-30 15:02 ` [PATCH v11 04/10] fs/ntfs3: Add file operations and implementation Konstantin Komarov
2020-10-30 15:02 ` [PATCH v11 05/10] fs/ntfs3: Add attrib operations Konstantin Komarov
2020-10-30 15:02 ` [PATCH v11 06/10] fs/ntfs3: Add compression Konstantin Komarov
2020-10-30 15:02 ` [PATCH v11 07/10] fs/ntfs3: Add NTFS journal Konstantin Komarov
2020-10-30 15:02 ` [PATCH v11 08/10] fs/ntfs3: Add Kconfig, Makefile and doc Konstantin Komarov
2020-10-30 15:02 ` [PATCH v11 09/10] fs/ntfs3: Add NTFS3 in fs/Kconfig and fs/Makefile Konstantin Komarov
2020-10-31  1:23   ` kernel test robot
2020-10-31  1:23     ` kernel test robot
2020-11-02  8:36   ` Dan Carpenter [this message]
2020-11-02  8:36     ` [kbuild] " Dan Carpenter
2020-11-02  8:36     ` Dan Carpenter
2020-11-03  3:06   ` kernel test robot
2020-11-03  3:06     ` kernel test robot
2020-10-30 15:02 ` [PATCH v11 10/10] fs/ntfs3: Add MAINTAINERS Konstantin Komarov
2020-10-30 15:24 ` [PATCH v11 00/10] NTFS read-write driver GPL implementation by Paragon Software Pali Rohár
2020-10-30 15:51   ` Konstantin Komarov
2020-10-30 16:24     ` Pali Rohár
2020-10-30 16:41 ` Pali Rohár
2020-10-31  8:51   ` Christoph Hellwig
2020-10-31  2:42 ` Eric Biggers
2020-10-31  2:48   ` Eric Biggers
  -- strict thread matches above, loose matches on Subject: below --
2020-11-02  8:00 [PATCH v11 09/10] fs/ntfs3: Add NTFS3 in fs/Kconfig and fs/Makefile kernel test robot

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=20201102083604.GT18329@kadam \
    --to=dan.carpenter@oracle.com \
    --cc=kbuild@lists.01.org \
    /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.