Powered by Linux
Re: smatch question — Semantic Matching Tool

Re: smatch question

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

 



On Thu, Apr 24, 2014 at 04:04:17PM -0700, Artem Bityutskiy wrote:
> Hi Dan,
> 
> could you please remind what is the kernel data smatch needs, how
> important is it to have it, how to create it and maintain up-to-date?
> 
> Also, I am getting a lot of 
> 
> 
> Warning: /home/dedekind/share/smatch/smatch_data/ is not accessible.
> Use --no-data or --data to suppress this message.
> 
> And I am suppressing this with --no-data, but I'd prefer to use '-q' or
> '--quiet' instead, which would ask smatch to use the data if it is
> available, or just keep silence if it is not, and avoid printing the
> warning. Would this make sense?
> 

Those are good questions.

I really intended that people would always use the data directory.  I'm
pretty sure that if you don't have it then you end up with bogus output.
Just from a quick glance, these files are important:

kernel.ignored_macros
kernel.silenced_functions
kernel.no_return_funcs

I think that adding a --quiet is probably a mistake.  Use the
--data=<dir> option to specify where the data directory is instead.
Most of the other files are for specific checks.  All the checks assume
that they will find their data.  I should write them so that they handle
it correctly when the data isn't there...  I haven't worried about this
before.

The smatch_scripts/build_kernel_data.sh script will update the
smatch_data/ directory.

That script also builds the cross function database so it takes a while
to run.  I should mention here that I keep moving information from the
smatch_data/ directory into the database.

Have people been using the database?  It's really great!  For example,
http://www.spinics.net/lists/stable/msg43121.html
In that patch Andy adds a fix for the case where nlh->nlmsg_type is less
than 16 and it leads to a read underflow.  But if he had had the cross
function db set up then he could have typed `smdb crypto_user_rcv_msg`
and it shows this information:

net/netlink/af_netlink.c |      netlink_rcv_skb | netlink_rcv_skb param 1 |  PARAM_VALUE |  1 | $$->nlmsg_type | 16-u16max

In other words, crypto_user_rcv_msg is called from netlink_rcv_skb() and
->nlmsg_type is in the 16-u16max range.

regards,
dan carpenter
--
To unsubscribe from this list: send the line "unsubscribe smatch" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux