george.karpenkov requested changes to this revision.
george.karpenkov added inline comments.
This revision now requires changes to proceed.
================
Comment at: lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp:154
-bool WalkAST::containsBadStrlcpyPattern(const CallExpr *CE) {
+bool WalkAST::containsBadStrlcpyStrlcatPattern(const CallExpr *CE, bool
Append) {
if (CE->getNumArgs() != 3)
----------------
`Append` can be deduced from a call expression; I think it would be better to
drop it from the parameter list and calculate again in the function body.
================
Comment at: lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp:164
+ // - sizeof(dst)
+ if (Append && isSizeof(LenArg, DstArg))
+ return true;
----------------
I am confused on what is happening in this branch and why is it bad. Could we
add a commend?
================
Comment at: lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp:196
uint64_t BufferLen = C.getTypeSize(Buffer) / 8;
- if ((BufferLen - DstOff) < ILRawVal)
- return true;
+ BufferLen -= DstOff;
+ if (Append) {
----------------
Better to introduce a new variable, e.g. `RemainingBufferLen`
https://reviews.llvm.org/D49722
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits