Re: CacheFiles: Provide read-and-reset release counters for cachefilesd

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello David Howells,

This is a semi-automatic email about new static checker warnings.

The patch a5b3a80b899b: "CacheFiles: Provide read-and-reset release 
counters for cachefilesd" from Feb 1, 2016, leads to the following 
Smatch complaint:

fs/cachefiles/interface.c:295 cachefiles_drop_object()
	 error: we previously assumed 'object->dentry' could be null (see line 276)

fs/cachefiles/interface.c
   275		 */
   276		if (object->dentry) {
                    ^^^^^^^^^^^^^^
Check for NULL.

   277			/* delete retired objects */
   278			if (test_bit(FSCACHE_OBJECT_RETIRED, &object->fscache.flags) &&
   279			    _object != cache->cache.fsdef
   280			    ) {
   281				_debug("- retire object OBJ%x", object->fscache.debug_id);
   282				cachefiles_begin_secure(cache, &saved_cred);
   283				cachefiles_delete_object(cache, object);
   284				cachefiles_end_secure(cache, saved_cred);
   285			}
   286	
   287			/* close the filesystem stuff attached to the object */
   288			if (object->backer != object->dentry)
   289				dput(object->backer);
   290			object->backer = NULL;
   291		}
   292	
   293		/* note that the object is now inactive */
   294		if (test_bit(CACHEFILES_OBJECT_ACTIVE, &object->flags))
   295			cachefiles_mark_object_inactive(cache, object);
                                                               ^^^^^^
Unchecked dereference inside the function.  Perhaps CACHEFILES_OBJECT_ACTIVE
implies it's non-NULL but it would probably easier to read if we moved
it inside the above if statement.

   296	
   297		dput(object->dentry);

regards,
dan carpenter

--
Linux-cachefs mailing list
Linux-cachefs@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/linux-cachefs



[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]
  Powered by Linux