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

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by David Malcolm
<dmalc...@gcc.gnu.org>:

https://gcc.gnu.org/g:8d58bfb78c8dc6f5bdf7786b96f26329e0d36b80

commit r11-8671-g8d58bfb78c8dc6f5bdf7786b96f26329e0d36b80
Author: David Malcolm <dmalc...@redhat.com>
Date:   Fri Jul 2 15:19:43 2021 -0400

    analyzer: fix missing leak after call to strsep [PR100615]

    PR analyzer/100615 reports a missing leak diagnostic.
    The issue is that the code calls strsep which the analyzer doesn't
    have special knowledge of, and so conservatively assumes that it
    could free the pointer, so drops malloc state for it.

    Properly "teaching" the analyzer about strsep would require it
    to support bifurcating state at a call, which is currently fiddly to
    do, so for now this patch notes that strsep doesn't affect the
    malloc state machine, allowing the analyzer to correctly detect the leak.

    gcc/analyzer/ChangeLog:
            PR analyzer/100615
            * sm-malloc.cc: Include "analyzer/function-set.h".
            (malloc_state_machine::on_stmt): Call unaffected_by_call_p and
            bail on the functions it recognizes.
            (malloc_state_machine::unaffected_by_call_p): New.

    gcc/testsuite/ChangeLog:
            PR analyzer/100615
            * gcc.dg/analyzer/pr100615.c: New test.

    Signed-off-by: David Malcolm <dmalc...@redhat.com>
  • [Bug analyzer/100615] analyzer ... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to