libafs: crash in a more useful way if nchunks is zero
authorGarrett Wollman <wollman@csail.mit.edu>
Tue, 9 Aug 2011 03:59:17 +0000 (23:59 -0400)
committerDerrick Brashear <shadow@dementix.org>
Mon, 29 Aug 2011 03:46:33 +0000 (20:46 -0700)
commit40c9163aa9f266c4ad3a0a5a68e0aae0c35e3e51
tree7d1e67220497df145ac810fc0d2e47311e6f4c0d
parentedbe891abfb00be2c9f4de474db2dd784f2d5a61
libafs: crash in a more useful way if nchunks is zero

In afs_CacheStoreDCaches(), if the parameter nchunks is zero, the
main loop will not execute, leaving the XSTATS pointer unchanged,
which will result in a null dereference in XSTATS_END_TIME.  Instead
assert that nchunks is nonzero, which will help the static analyzer
and will also generate a more useful panic message should this
error ever be encountered in operation.

There is presently only one call site, and it may be the case that this
condition can never be triggered.

(While in the neighborhood, also avoid dereferencing tdc immediately
before testing whether it is null.)

Change-Id: Idf68f1306d3e09771425c62df139c1de11806c22
Found-by: clang static analyzer
Reviewed-on: http://gerrit.openafs.org/5179
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
src/afs/afs_fetchstore.c