[Analyzer][MallocChecker] No warning for kfree of ZERO_SIZE_PTR.
authorBalázs Kéri <1.int32@gmail.com>
Mon, 30 Mar 2020 07:23:07 +0000 (09:23 +0200)
committerBalázs Kéri <1.int32@gmail.com>
Mon, 30 Mar 2020 08:33:14 +0000 (10:33 +0200)
commitdcc04e09cf6e36c6d2c47057a8f201f2c0784c69
tree8ea66df00bfe066ae8fb32fc2fd75a375b3f5f58
parent65c703137094a5cbc94880012f1d5a1aef9284c2
[Analyzer][MallocChecker] No warning for kfree of ZERO_SIZE_PTR.

Summary:
The kernel kmalloc function may return a constant value ZERO_SIZE_PTR
if a zero-sized block is allocated. This special value is allowed to
be passed to kfree and should produce no warning.

This is a simple version but should be no problem. The macro is always
detected independent of if this is a kernel source code or any other
code.

Reviewers: Szelethus, martong

Reviewed By: Szelethus, martong

Subscribers: rnkovacs, xazax.hun, baloghadamsoftware, szepet, a.sidorin, mikhail.ramalho, Szelethus, donat.nagy, dkrupp, gamesh411, Charusso, martong, ASDenysPetrov, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D76830
clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
clang/lib/StaticAnalyzer/Core/CheckerHelpers.cpp
clang/test/Analysis/kmalloc-linux.c
clang/test/Analysis/malloc.cpp