diff options
Diffstat (limited to 'clang/tools/libclang/CXString.cpp')
-rw-r--r-- | clang/tools/libclang/CXString.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/clang/tools/libclang/CXString.cpp b/clang/tools/libclang/CXString.cpp index 1523034dbdd..662b0f94dbb 100644 --- a/clang/tools/libclang/CXString.cpp +++ b/clang/tools/libclang/CXString.cpp @@ -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); |