Backport ad7211df6f257e39da2e5a11b2456b4488f32a1e, see rhbz#1825593

This commit is contained in:
sergesanspaille 2020-05-19 13:12:28 +00:00
parent 0c8ce6b93d
commit d933922e69
2 changed files with 53 additions and 1 deletions

View File

@ -0,0 +1,47 @@
From ad7211df6f257e39da2e5a11b2456b4488f32a1e Mon Sep 17 00:00:00 2001
From: Oliver Bruns <obruns@gmail.com>
Date: Mon, 6 Apr 2020 10:38:30 +0200
Subject: [PATCH] [clang] fix undefined behaviour in
RawComment::getFormattedText()
Summary:
Calling `back()` and `pop_back()` on the empty string is undefined
behavior [1,2].
The issue manifested itself as an uncaught `std::out_of_range` exception
when running `clangd` compiled on RHEL7 using devtoolset-9.
[1] https://en.cppreference.com/w/cpp/string/basic_string/back
[2] https://en.cppreference.com/w/cpp/string/basic_string/pop_back
Fixes: 1ff7c32fc91c607b690d4bb9cf42f406be8dde68
Reviewers: teemperor, ioeric, cfe-commits
Reviewed By: teemperor
Subscribers: ilya-biryukov, kadircet, usaxena95
Tags: #clang
Differential Revision: https://reviews.llvm.org/D77468
---
clang/lib/AST/RawCommentList.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/clang/lib/AST/RawCommentList.cpp b/clang/lib/AST/RawCommentList.cpp
index 8552b4fcd2b..a8d15036cab 100644
--- a/clang/lib/AST/RawCommentList.cpp
+++ b/clang/lib/AST/RawCommentList.cpp
@@ -431,7 +431,7 @@ std::string RawComment::getFormattedText(const SourceManager &SourceMgr,
};
auto DropTrailingNewLines = [](std::string &Str) {
- while (Str.back() == '\n')
+ while (!Str.empty() && Str.back() == '\n')
Str.pop_back();
};
--
2.25.2

View File

@ -4,7 +4,7 @@
%global min_ver 0
%global patch_ver 0
#%%global rc_ver 6
%global baserelease 1
%global baserelease 2
%global clang_tools_binaries \
%{_bindir}/clang-apply-replacements \
@ -98,6 +98,7 @@ Source4: https://prereleases.llvm.org/%{version}/hans-gpg-key.asc
Patch4: 0002-gtest-reorg.patch
Patch11: 0001-ToolChain-Add-lgcc_s-to-the-linker-flags-when-using-.patch
Patch13: 0001-Make-funwind-tables-the-default-for-all-archs.patch
Patch14: 0001-clang-fix-undefined-behaviour-in-RawComment-getForma.patch
# Not Upstream
Patch15: 0001-clang-Don-t-install-static-libraries.patch
@ -250,6 +251,7 @@ pathfix.py -i %{__python3} -pn \
%patch4 -p1 -b .gtest
%patch11 -p1 -b .libcxx-fix
%patch13 -p2 -b .unwind-all
%patch14 -p2 -b .clangd
%patch15 -p2 -b .no-install-static
mv ../%{clang_tools_srcdir} tools/extra
@ -469,6 +471,9 @@ LD_LIBRARY_PATH=%{buildroot}%{_libdir} ninja check-all -C _build || \
%endif
%changelog
* Tue May 19 2020 sguelton@redhat.com - 10.0.0-2
- Backport ad7211df6f257e39da2e5a11b2456b4488f32a1e, see rhbz#1825593
* Thu Mar 26 2020 sguelton@redhat.com - 10.0.0-1
- 10.0.0 final