Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.8k views
in Technique[技术] by (71.8m points)

c - Why does Clang static analyzer think that this is use-after-free?

I'm probably just stupid:

    fileref_t *fref;

    while (gli_filereflist != NULL)
    {
        fref = gli_filereflist;
        if (fref != NULL)
        {
            glk_fileref_destroy(fref);   <-------- Use of memory after it is freed
            fref = NULL;
        }
    }

This is after I added the NULL check and explicitly set fref to NULL after free().

Xcode 12.3. Original code here.

If this is a false positive, is there a way to silence it?

EDIT: gli_filereflist is a linked list, which will point to the next item in the list when the first one is destroyed.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
等待大神解答

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...