From e484236825ef5c70eb05dfe50ca05907df29a5c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ho=C5=99e=C5=88ovsk=C3=BD?= Date: Mon, 13 Nov 2017 12:09:19 +0100 Subject: [PATCH] Don't invoke UB when nullptr is passed to StringRef constructor --- include/internal/catch_stringref.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/include/internal/catch_stringref.cpp b/include/internal/catch_stringref.cpp index 5b6970d0..e209cf39 100644 --- a/include/internal/catch_stringref.cpp +++ b/include/internal/catch_stringref.cpp @@ -14,8 +14,8 @@ #include "catch_stringref.h" #include -#include #include +#include @@ -43,12 +43,12 @@ namespace Catch { other.m_data = nullptr; } - StringRef::StringRef( char const* rawChars ) noexcept - : m_start( rawChars ), - m_size( static_cast( std::strlen( rawChars ) ) ) - { - assert( rawChars != nullptr ); - } + StringRef::StringRef(char const* rawChars) noexcept + : m_start(rawChars), + m_size( (rawChars != nullptr)? + (static_cast(std::strlen(rawChars))): + throw std::domain_error("Cannot create StringRef from nullptr")) + {} StringRef::StringRef( char const* rawChars, size_type size ) noexcept : m_start( rawChars ),