diff options
Diffstat (limited to 'tools/libclang/CXString.cpp')
-rw-r--r-- | tools/libclang/CXString.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/tools/libclang/CXString.cpp b/tools/libclang/CXString.cpp index 1523034dbddb..dec8ebcd98e1 100644 --- a/tools/libclang/CXString.cpp +++ b/tools/libclang/CXString.cpp @@ -51,7 +51,7 @@ CXString createEmpty() { CXString createNull() { CXString Str; - Str.data = 0; + Str.data = nullptr; Str.private_flags = CXS_Unmanaged; return Str; } @@ -81,7 +81,11 @@ CXString createDup(const char *String) { CXString createRef(StringRef String) { // If the string is not nul-terminated, we have to make a copy. - // This is doing a one past end read, and should be removed! + + // FIXME: This is doing a one past end read, and should be removed! For memory + // we don't manage, the API string can become unterminated at any time outside + // our control. + if (!String.empty() && String.data()[String.size()] != 0) return createDup(String); |