From dc2d4c37473be3848dfcf33e480b964cb4dd099d Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Sat, 2 Jan 2021 16:13:27 -0800 Subject: [PATCH] Mark error conversion function noexcept This prevents a std::bad_alloc exception from operator new[] from potentially propagating into Rust, which would be UB. --- src/cxx.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cxx.cc b/src/cxx.cc index ccf44b20..9b4357cb 100644 --- a/src/cxx.cc +++ b/src/cxx.cc @@ -351,7 +351,7 @@ static_assert(!std::is_same::const_iterator, "Vec::const_iterator != Vec::iterator"); extern "C" { -const char *cxxbridge1$error(const char *ptr, std::size_t len) { +const char *cxxbridge1$error(const char *ptr, std::size_t len) noexcept { char *copy = new char[len]; std::strncpy(copy, ptr, len); return copy;