All of lore.kernel.org
 help / color / mirror / Atom feed
* [dhowells-fs:fscache-next 10/11] fs/cachefiles/interface.c:101 cachefiles_alloc_object() error: uninitialized symbol 'lookup_data'.
@ 2019-11-04  6:56 ` Dan Carpenter
  0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2019-11-04  6:56 UTC (permalink / raw)
  To: kbuild

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git fscache-next
head:   a378de860278da7a006db7135ce24cf56cd8b552
commit: 22691addb04f46468ead9648b7e95d213312c82f [10/11] cachefiles: Reduce cleanup in cachefiles_alloc_object()

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

New smatch warnings:
fs/cachefiles/interface.c:101 cachefiles_alloc_object() error: uninitialized symbol 'lookup_data'.

# https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit/?id=22691addb04f46468ead9648b7e95d213312c82f
git remote add dhowells-fs https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git
git remote update dhowells-fs
git checkout 22691addb04f46468ead9648b7e95d213312c82f
vim +/lookup_data +101 fs/cachefiles/interface.c

9ae326a69004de David Howells 2009-04-03   26  static struct fscache_object *cachefiles_alloc_object(
9ae326a69004de David Howells 2009-04-03   27  	struct fscache_cache *_cache,
9ae326a69004de David Howells 2009-04-03   28  	struct fscache_cookie *cookie)
9ae326a69004de David Howells 2009-04-03   29  {
9ae326a69004de David Howells 2009-04-03   30  	struct cachefiles_lookup_data *lookup_data;

This is only used for the sizeof().

9ae326a69004de David Howells 2009-04-03   31  	struct cachefiles_object *object;
9ae326a69004de David Howells 2009-04-03   32  	struct cachefiles_cache *cache;
9ae326a69004de David Howells 2009-04-03   33  	struct cachefiles_xattr *auxdata;
9ae326a69004de David Howells 2009-04-03   34  	unsigned keylen, auxlen;
402cb8dda949d9 David Howells 2018-04-04   35  	void *buffer, *p;
9ae326a69004de David Howells 2009-04-03   36  
9ae326a69004de David Howells 2009-04-03   37  	cache = container_of(_cache, struct cachefiles_cache, cache);
9ae326a69004de David Howells 2009-04-03   38  
9ae326a69004de David Howells 2009-04-03   39  	_enter("{%s},%p,", cache->cache.identifier, cookie);
9ae326a69004de David Howells 2009-04-03   40  
9ae326a69004de David Howells 2009-04-03   41  	/* create a new object record and a temporary leaf image */
6feed675ec5813 David Howells 2019-10-31   42  	object = kmem_cache_zalloc(cachefiles_object_jar, cachefiles_gfp);
9ae326a69004de David Howells 2009-04-03   43  	if (!object)
22691addb04f46 David Howells 2019-10-31   44  		goto nomem;
9ae326a69004de David Howells 2009-04-03   45  
9ae326a69004de David Howells 2009-04-03   46  	ASSERTCMP(object->backer, ==, NULL);
9ae326a69004de David Howells 2009-04-03   47  
9ae326a69004de David Howells 2009-04-03   48  	BUG_ON(test_bit(CACHEFILES_OBJECT_ACTIVE, &object->flags));
9ae326a69004de David Howells 2009-04-03   49  	atomic_set(&object->usage, 1);
6feed675ec5813 David Howells 2019-10-31   50  	spin_lock_init(&object->work_lock);
9ae326a69004de David Howells 2009-04-03   51  
9ae326a69004de David Howells 2009-04-03   52  	fscache_object_init(&object->fscache, cookie, &cache->cache);
9ae326a69004de David Howells 2009-04-03   53  
9ae326a69004de David Howells 2009-04-03   54  	object->type = cookie->def->type;
9ae326a69004de David Howells 2009-04-03   55  
22691addb04f46 David Howells 2019-10-31   56  	object->lookup_data = kzalloc(sizeof(*lookup_data), cachefiles_gfp);
                                                                                    ^^^^^^^^^^^^^^

22691addb04f46 David Howells 2019-10-31   57  	if (!object->lookup_data)
22691addb04f46 David Howells 2019-10-31   58  		goto nomem_object;
22691addb04f46 David Howells 2019-10-31   59  
9ae326a69004de David Howells 2009-04-03   60  	/* get hold of the raw key
9ae326a69004de David Howells 2009-04-03   61  	 * - stick the length on the front and leave space on the back for the
9ae326a69004de David Howells 2009-04-03   62  	 *   encoder
9ae326a69004de David Howells 2009-04-03   63  	 */
22691addb04f46 David Howells 2019-10-31   64  	object->lookup_data->auxdata = kmalloc((2 + 512) + 3, cachefiles_gfp);
22691addb04f46 David Howells 2019-10-31   65  	if (!object->lookup_data->auxdata)
22691addb04f46 David Howells 2019-10-31   66  		goto nomem_object;
9ae326a69004de David Howells 2009-04-03   67  
402cb8dda949d9 David Howells 2018-04-04   68  	keylen = cookie->key_len;
402cb8dda949d9 David Howells 2018-04-04   69  	if (keylen <= sizeof(cookie->inline_key))
402cb8dda949d9 David Howells 2018-04-04   70  		p = cookie->inline_key;
402cb8dda949d9 David Howells 2018-04-04   71  	else
402cb8dda949d9 David Howells 2018-04-04   72  		p = cookie->key;
22691addb04f46 David Howells 2019-10-31   73  
22691addb04f46 David Howells 2019-10-31   74  	buffer = object->lookup_data->auxdata;
402cb8dda949d9 David Howells 2018-04-04   75  	memcpy(buffer + 2, p, keylen);
9ae326a69004de David Howells 2009-04-03   76  
9ae326a69004de David Howells 2009-04-03   77  	*(uint16_t *)buffer = keylen;
9ae326a69004de David Howells 2009-04-03   78  	((char *)buffer)[keylen + 2] = 0;
9ae326a69004de David Howells 2009-04-03   79  	((char *)buffer)[keylen + 3] = 0;
9ae326a69004de David Howells 2009-04-03   80  	((char *)buffer)[keylen + 4] = 0;
9ae326a69004de David Howells 2009-04-03   81  
9ae326a69004de David Howells 2009-04-03   82  	/* turn the raw key into something that can work with as a filename */
22691addb04f46 David Howells 2019-10-31   83  	object->lookup_data->key = cachefiles_cook_key(buffer, keylen + 2, object->type);
22691addb04f46 David Howells 2019-10-31   84  	if (!object->lookup_data->key)
22691addb04f46 David Howells 2019-10-31   85  		goto nomem_object;
9ae326a69004de David Howells 2009-04-03   86  
9ae326a69004de David Howells 2009-04-03   87  	/* get hold of the auxiliary data and prepend the object type */
22691addb04f46 David Howells 2019-10-31   88  	auxdata = object->lookup_data->auxdata;
402cb8dda949d9 David Howells 2018-04-04   89  	auxlen = cookie->aux_len;
402cb8dda949d9 David Howells 2018-04-04   90  	if (auxlen) {
402cb8dda949d9 David Howells 2018-04-04   91  		if (auxlen <= sizeof(cookie->inline_aux))
402cb8dda949d9 David Howells 2018-04-04   92  			p = cookie->inline_aux;
402cb8dda949d9 David Howells 2018-04-04   93  		else
402cb8dda949d9 David Howells 2018-04-04   94  			p = cookie->aux;
402cb8dda949d9 David Howells 2018-04-04   95  		memcpy(auxdata->data, p, auxlen);
9ae326a69004de David Howells 2009-04-03   96  	}
9ae326a69004de David Howells 2009-04-03   97  
9ae326a69004de David Howells 2009-04-03   98  	auxdata->len = auxlen + 1;
402cb8dda949d9 David Howells 2018-04-04   99  	auxdata->type = cookie->type;
9ae326a69004de David Howells 2009-04-03  100  
9ae326a69004de David Howells 2009-04-03 @101  	_leave(" = %p [%p]", &object->fscache, lookup_data);
                                                                                       ^^^^^^^^^^^

9ae326a69004de David Howells 2009-04-03  102  	return &object->fscache;
9ae326a69004de David Howells 2009-04-03  103  
9ae326a69004de David Howells 2009-04-03  104  nomem_object:
22691addb04f46 David Howells 2019-10-31  105  	cachefiles_put_object(&object->fscache, fscache_obj_put_alloc_fail);
22691addb04f46 David Howells 2019-10-31  106  nomem:
9ae326a69004de David Howells 2009-04-03  107  	_leave(" = -ENOMEM");
9ae326a69004de David Howells 2009-04-03  108  	return ERR_PTR(-ENOMEM);
9ae326a69004de David Howells 2009-04-03  109  }
9ae326a69004de David Howells 2009-04-03  110  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [dhowells-fs:fscache-next 10/11] fs/cachefiles/interface.c:101 cachefiles_alloc_object() error: uninitialized symbol 'lookup_data'.
@ 2019-11-04  6:56 ` Dan Carpenter
  0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2019-11-04  6:56 UTC (permalink / raw)
  To: kbuild-all

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git fscache-next
head:   a378de860278da7a006db7135ce24cf56cd8b552
commit: 22691addb04f46468ead9648b7e95d213312c82f [10/11] cachefiles: Reduce cleanup in cachefiles_alloc_object()

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

New smatch warnings:
fs/cachefiles/interface.c:101 cachefiles_alloc_object() error: uninitialized symbol 'lookup_data'.

# https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/commit/?id=22691addb04f46468ead9648b7e95d213312c82f
git remote add dhowells-fs https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git
git remote update dhowells-fs
git checkout 22691addb04f46468ead9648b7e95d213312c82f
vim +/lookup_data +101 fs/cachefiles/interface.c

9ae326a69004de David Howells 2009-04-03   26  static struct fscache_object *cachefiles_alloc_object(
9ae326a69004de David Howells 2009-04-03   27  	struct fscache_cache *_cache,
9ae326a69004de David Howells 2009-04-03   28  	struct fscache_cookie *cookie)
9ae326a69004de David Howells 2009-04-03   29  {
9ae326a69004de David Howells 2009-04-03   30  	struct cachefiles_lookup_data *lookup_data;

This is only used for the sizeof().

9ae326a69004de David Howells 2009-04-03   31  	struct cachefiles_object *object;
9ae326a69004de David Howells 2009-04-03   32  	struct cachefiles_cache *cache;
9ae326a69004de David Howells 2009-04-03   33  	struct cachefiles_xattr *auxdata;
9ae326a69004de David Howells 2009-04-03   34  	unsigned keylen, auxlen;
402cb8dda949d9 David Howells 2018-04-04   35  	void *buffer, *p;
9ae326a69004de David Howells 2009-04-03   36  
9ae326a69004de David Howells 2009-04-03   37  	cache = container_of(_cache, struct cachefiles_cache, cache);
9ae326a69004de David Howells 2009-04-03   38  
9ae326a69004de David Howells 2009-04-03   39  	_enter("{%s},%p,", cache->cache.identifier, cookie);
9ae326a69004de David Howells 2009-04-03   40  
9ae326a69004de David Howells 2009-04-03   41  	/* create a new object record and a temporary leaf image */
6feed675ec5813 David Howells 2019-10-31   42  	object = kmem_cache_zalloc(cachefiles_object_jar, cachefiles_gfp);
9ae326a69004de David Howells 2009-04-03   43  	if (!object)
22691addb04f46 David Howells 2019-10-31   44  		goto nomem;
9ae326a69004de David Howells 2009-04-03   45  
9ae326a69004de David Howells 2009-04-03   46  	ASSERTCMP(object->backer, ==, NULL);
9ae326a69004de David Howells 2009-04-03   47  
9ae326a69004de David Howells 2009-04-03   48  	BUG_ON(test_bit(CACHEFILES_OBJECT_ACTIVE, &object->flags));
9ae326a69004de David Howells 2009-04-03   49  	atomic_set(&object->usage, 1);
6feed675ec5813 David Howells 2019-10-31   50  	spin_lock_init(&object->work_lock);
9ae326a69004de David Howells 2009-04-03   51  
9ae326a69004de David Howells 2009-04-03   52  	fscache_object_init(&object->fscache, cookie, &cache->cache);
9ae326a69004de David Howells 2009-04-03   53  
9ae326a69004de David Howells 2009-04-03   54  	object->type = cookie->def->type;
9ae326a69004de David Howells 2009-04-03   55  
22691addb04f46 David Howells 2019-10-31   56  	object->lookup_data = kzalloc(sizeof(*lookup_data), cachefiles_gfp);
                                                                                    ^^^^^^^^^^^^^^

22691addb04f46 David Howells 2019-10-31   57  	if (!object->lookup_data)
22691addb04f46 David Howells 2019-10-31   58  		goto nomem_object;
22691addb04f46 David Howells 2019-10-31   59  
9ae326a69004de David Howells 2009-04-03   60  	/* get hold of the raw key
9ae326a69004de David Howells 2009-04-03   61  	 * - stick the length on the front and leave space on the back for the
9ae326a69004de David Howells 2009-04-03   62  	 *   encoder
9ae326a69004de David Howells 2009-04-03   63  	 */
22691addb04f46 David Howells 2019-10-31   64  	object->lookup_data->auxdata = kmalloc((2 + 512) + 3, cachefiles_gfp);
22691addb04f46 David Howells 2019-10-31   65  	if (!object->lookup_data->auxdata)
22691addb04f46 David Howells 2019-10-31   66  		goto nomem_object;
9ae326a69004de David Howells 2009-04-03   67  
402cb8dda949d9 David Howells 2018-04-04   68  	keylen = cookie->key_len;
402cb8dda949d9 David Howells 2018-04-04   69  	if (keylen <= sizeof(cookie->inline_key))
402cb8dda949d9 David Howells 2018-04-04   70  		p = cookie->inline_key;
402cb8dda949d9 David Howells 2018-04-04   71  	else
402cb8dda949d9 David Howells 2018-04-04   72  		p = cookie->key;
22691addb04f46 David Howells 2019-10-31   73  
22691addb04f46 David Howells 2019-10-31   74  	buffer = object->lookup_data->auxdata;
402cb8dda949d9 David Howells 2018-04-04   75  	memcpy(buffer + 2, p, keylen);
9ae326a69004de David Howells 2009-04-03   76  
9ae326a69004de David Howells 2009-04-03   77  	*(uint16_t *)buffer = keylen;
9ae326a69004de David Howells 2009-04-03   78  	((char *)buffer)[keylen + 2] = 0;
9ae326a69004de David Howells 2009-04-03   79  	((char *)buffer)[keylen + 3] = 0;
9ae326a69004de David Howells 2009-04-03   80  	((char *)buffer)[keylen + 4] = 0;
9ae326a69004de David Howells 2009-04-03   81  
9ae326a69004de David Howells 2009-04-03   82  	/* turn the raw key into something that can work with as a filename */
22691addb04f46 David Howells 2019-10-31   83  	object->lookup_data->key = cachefiles_cook_key(buffer, keylen + 2, object->type);
22691addb04f46 David Howells 2019-10-31   84  	if (!object->lookup_data->key)
22691addb04f46 David Howells 2019-10-31   85  		goto nomem_object;
9ae326a69004de David Howells 2009-04-03   86  
9ae326a69004de David Howells 2009-04-03   87  	/* get hold of the auxiliary data and prepend the object type */
22691addb04f46 David Howells 2019-10-31   88  	auxdata = object->lookup_data->auxdata;
402cb8dda949d9 David Howells 2018-04-04   89  	auxlen = cookie->aux_len;
402cb8dda949d9 David Howells 2018-04-04   90  	if (auxlen) {
402cb8dda949d9 David Howells 2018-04-04   91  		if (auxlen <= sizeof(cookie->inline_aux))
402cb8dda949d9 David Howells 2018-04-04   92  			p = cookie->inline_aux;
402cb8dda949d9 David Howells 2018-04-04   93  		else
402cb8dda949d9 David Howells 2018-04-04   94  			p = cookie->aux;
402cb8dda949d9 David Howells 2018-04-04   95  		memcpy(auxdata->data, p, auxlen);
9ae326a69004de David Howells 2009-04-03   96  	}
9ae326a69004de David Howells 2009-04-03   97  
9ae326a69004de David Howells 2009-04-03   98  	auxdata->len = auxlen + 1;
402cb8dda949d9 David Howells 2018-04-04   99  	auxdata->type = cookie->type;
9ae326a69004de David Howells 2009-04-03  100  
9ae326a69004de David Howells 2009-04-03 @101  	_leave(" = %p [%p]", &object->fscache, lookup_data);
                                                                                       ^^^^^^^^^^^

9ae326a69004de David Howells 2009-04-03  102  	return &object->fscache;
9ae326a69004de David Howells 2009-04-03  103  
9ae326a69004de David Howells 2009-04-03  104  nomem_object:
22691addb04f46 David Howells 2019-10-31  105  	cachefiles_put_object(&object->fscache, fscache_obj_put_alloc_fail);
22691addb04f46 David Howells 2019-10-31  106  nomem:
9ae326a69004de David Howells 2009-04-03  107  	_leave(" = -ENOMEM");
9ae326a69004de David Howells 2009-04-03  108  	return ERR_PTR(-ENOMEM);
9ae326a69004de David Howells 2009-04-03  109  }
9ae326a69004de David Howells 2009-04-03  110  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-11-04  6:56 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-11-04  6:56 [dhowells-fs:fscache-next 10/11] fs/cachefiles/interface.c:101 cachefiles_alloc_object() error: uninitialized symbol 'lookup_data' Dan Carpenter
2019-11-04  6:56 ` Dan Carpenter

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.