Skip to contentSkip to conversation

smatch 1.55 released

DISCUSSION Dan Carpenter 1 participant 1 message May 26, 2010 Kernel janitors

lore
Share & tools
lore
#0 lore raw

Smatch is a static checker for C. The core parts basically do flow analysis and then there are project specific checks as well. The website is: http://smatch.sf.net

To use it do:
git clone git://repo.or.cz/smatch.git
cd smatch ; make ; cd /usr/src/kernel
make CHECK="~/path/to/smatch/smatch -p=kernel" C=1 \
bzImage modules | tee warns.txt

Things that have changed since 1.54:
* The array overflow check is now useful.
* There is a new check for precedence bugs caused by macro expansion.
* The checks for null pointer dereferences were rewritten and now have fewer false positives.
* Some kernel specific tests were added for kunmap(), release_resource(), resource_size(), and mod_timer().

Major Bugs:
* Smatch doesn't handle loops correctly.
* It doesn't do cross function analysis.
* It doesn't understand code like this:

	foo->bar = NULL;
	foo = not_null();
	foo->bar->baz;  // <- Smatch complains about a null dereference.

* Too many false positives generally.

Anyway, please test it out. :)

regards,
dan carpenter