https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118500

David Malcolm <dmalcolm at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2025-01-20
             Status|UNCONFIRMED                 |NEW

--- Comment #5 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
Thanks for filing this report.

There are (at least) three -fanalyzer issues here:

(a) false positive about leak of 'my_strdup("f,oo")':
  https://godbolt.org/z/rKxhfxWGf
This is probably due to -fanalyzer getting confused by having both the
attribute and a function body.  I think there's already a report about this in
BZ somewhere.

(b) -fanalyzer doesn't "know" about the behavior of strsep beyond "knowing"
that it doesn't malloc or free anything internally.  Hence it doesn't know that
it will advance s to a point within the buffer that's not the start (and hence
the later "free" is a bug).

(c) With the "s++;" case in comment #4, -fanalyzer doesn't warn about free
called on a pointer *within* the buffer; it seems like it should.
https://godbolt.org/z/dMaGnTEYs

Reply via email to