Skip to content

Commit

Permalink
[analyzer] CStringChecker.cpp: Remove the duplicated check about null…
Browse files Browse the repository at this point in the history
… dereference on dest-buffer or src-buffer.

Summary: `CheckBufferAccess()` calls `CheckNonNull()`, so there are some calls to `CheckNonNull()` that are useless.

Reviewers: dcoughlin, NoQ, xazax.hun, cfe-commits, george.karpenkov

Reviewed By: NoQ

Subscribers: szepet, rnkovacs, MTC, a.sidorin

Differential Revision: https://reviews.llvm.org/D44075

llvm-svn: 326782
  • Loading branch information
movie-travel-code committed Mar 6, 2018
1 parent c5be6af commit 945a84a
Showing 1 changed file with 0 additions and 21 deletions.
21 changes: 0 additions & 21 deletions clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
Expand Up @@ -1033,21 +1033,6 @@ void CStringChecker::evalCopyCommon(CheckerContext &C,
if (stateNonZeroSize) {
state = stateNonZeroSize;

// Ensure the destination is not null. If it is NULL there will be a
// NULL pointer dereference.
state = checkNonNull(C, state, Dest, destVal);
if (!state)
return;

// Get the value of the Src.
SVal srcVal = state->getSVal(Source, LCtx);

// Ensure the source is not null. If it is NULL there will be a
// NULL pointer dereference.
state = checkNonNull(C, state, Source, srcVal);
if (!state)
return;

// Ensure the accesses are valid and that the buffers do not overlap.
const char * const writeWarning =
"Memory copy function overflows destination buffer";
Expand Down Expand Up @@ -2033,12 +2018,6 @@ void CStringChecker::evalMemset(CheckerContext &C, const CallExpr *CE) const {
return;
}

// Ensure the memory area is not null.
// If it is NULL there will be a NULL pointer dereference.
State = checkNonNull(C, StateNonZeroSize, Mem, MemVal);
if (!State)
return;

State = CheckBufferAccess(C, State, Size, Mem);
if (!State)
return;
Expand Down

0 comments on commit 945a84a

Please sign in to comment.