From: Dan Carpenter <error27@gmail.com>
To: Andi Kleen <andi@firstfloor.org>
Cc: linux-kernel@vger.kernel.org
Subject: Re: smatch 1.53 released
Date: Fri, 5 Jun 2009 15:52:07 +0200 [thread overview]
Message-ID: <a63d67fe0906050652k51321f18h4588d54954b3eb78@mail.gmail.com> (raw)
In-Reply-To: <20090604201029.GG1065@one.firstfloor.org>
On 6/4/09, Andi Kleen <andi@firstfloor.org> wrote:
> Thanks for the description.
>
>> So basically you grep for locking functions and you set the state
>> based on that, then you grep for return statements and check that the
>
> When you say "you" you mean smatch is doing that on its own
> or does the user need to do that manually?
>
I meant if you were writing a check for a different type of bug. The
checks that I mentioned are the ones I have written already.
There is also a line between the core smatch and the checks. The core
understands code flow and the checks call set_state() and get_state()
and print error messages. The core is able to handle any C code but
the checks are project specific.
>> Many of the locking false positives come from places where the unlock
>> happens in a seperate function. It should be relatively straight
>> forward to make a list functions to say that if frob_the_module()
>> returns -12, or -14 that implies it unlocked a certain lock. I
>> haven't done this yet.
>
> How would one pass that list of functions to smatch?
>
You can't right now. That's the bit that I still need to write. :/
But as an example, one of the checks has a file smatch_data/ with a
list of functions that allocate memory. Locking functions would be
the same.
> I understand correctly that right now it's not inter procedural in its
> analysis?
>
The null dereference check is, but none of the other checks are.
When the inter procedural analysis is done, it will mostly be a two
pass system where the first step builds a list of functions and what
they imply and the second pass does the check. Meaning two kernel
compiles. Or more likely, people will just use the default lists
which will be updated for -rc1 kernels.
Smatch is still in the very early stages.
regards,
dan carpenter
> -Andi
>
> --
> ak@linux.intel.com -- Speaking for myself only.
>
next prev parent reply other threads:[~2009-06-05 13:52 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-02 8:41 Dan Carpenter
2009-06-02 11:56 ` Andi Kleen
2009-06-04 19:50 ` Dan Carpenter
2009-06-04 20:10 ` Andi Kleen
2009-06-05 13:52 ` Dan Carpenter [this message]
2009-06-09 6:15 ` Christian Kujau
2009-06-16 14:54 ` Dan Carpenter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a63d67fe0906050652k51321f18h4588d54954b3eb78@mail.gmail.com \
--to=error27@gmail.com \
--cc=andi@firstfloor.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®