[LLVMdev] Clang: strange malloc usage (original) (raw)

Valery Pushkar pollnossa at gmail.com
Wed Jul 29 08:16:24 PDT 2015


Hello everyone!

I've found weird lines of code in tools/libclang/CIndex.cpp file in clang sources. Function clang_tokenize holds the following lines:

*Tokens = (CXToken *)malloc(sizeof(CXToken) * CXTokens.size()); memmove(*Tokens, CXTokens.data(), sizeof(CXToken) * CXTokens.size());

Since malloc function can return null pointer and there are no checks for this case, memmove invocation leads to segmentation fault.

The same case can be found in tools/libclang/CXString.cpp file in function createDup:

char *Spelling = static_cast<char *>(malloc(String.size() + 1)); memmove(Spelling, String.data(), String.size());

Could somebody clarify me if I'm wrong?

Thanks, Valeriy -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150729/2277a450/attachment.html>



More information about the llvm-dev mailing list