This revision was automatically updated to reflect the committed changes. Closed by commit rL340170: Fix an undefined behavior when storing an empty StringRef. (authored by hokein, committed by ).
Repository: rL LLVM https://reviews.llvm.org/D50966 Files: llvm/trunk/lib/Support/StringSaver.cpp Index: llvm/trunk/lib/Support/StringSaver.cpp =================================================================== --- llvm/trunk/lib/Support/StringSaver.cpp +++ llvm/trunk/lib/Support/StringSaver.cpp @@ -13,7 +13,8 @@ StringRef StringSaver::save(StringRef S) { char *P = Alloc.Allocate<char>(S.size() + 1); - memcpy(P, S.data(), S.size()); + if (!S.empty()) + memcpy(P, S.data(), S.size()); P[S.size()] = '\0'; return StringRef(P, S.size()); }
Index: llvm/trunk/lib/Support/StringSaver.cpp =================================================================== --- llvm/trunk/lib/Support/StringSaver.cpp +++ llvm/trunk/lib/Support/StringSaver.cpp @@ -13,7 +13,8 @@ StringRef StringSaver::save(StringRef S) { char *P = Alloc.Allocate<char>(S.size() + 1); - memcpy(P, S.data(), S.size()); + if (!S.empty()) + memcpy(P, S.data(), S.size()); P[S.size()] = '\0'; return StringRef(P, S.size()); }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits