From 3d3d391aed616abf8754621c8246a500dddef788 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Tue, 4 May 2021 15:16:14 +0300 Subject: get rid of SafeInt --- .gitmodules | 3 --- 3rdparty/microsoft/SafeInt | 1 - CMakeLists.txt | 4 ---- include/winapi/buffer.hpp | 16 ++-------------- src/cmd_line.cpp | 4 +--- 5 files changed, 3 insertions(+), 25 deletions(-) delete mode 160000 3rdparty/microsoft/SafeInt diff --git a/.gitmodules b/.gitmodules index 99998f2..9ea0616 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,6 +4,3 @@ [submodule "3rdparty/winapi/utf8"] path = 3rdparty/winapi/utf8 url = https://github.com/egor-tensin/winapi-utf8.git -[submodule "3rdparty/microsoft/SafeInt"] - path = 3rdparty/microsoft/SafeInt - url = https://github.com/dcleblanc/SafeInt.git diff --git a/3rdparty/microsoft/SafeInt b/3rdparty/microsoft/SafeInt deleted file mode 160000 index a5408ba..0000000 --- a/3rdparty/microsoft/SafeInt +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a5408ba2c025ec99a7afb6ccca907d5a263242a5 diff --git a/CMakeLists.txt b/CMakeLists.txt index f3b6749..8553200 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,9 +6,6 @@ enable_testing() include(cmake/common.cmake) find_package(Boost REQUIRED) -if(NOT TARGET SafeInt) - add_subdirectory(3rdparty/microsoft/SafeInt EXCLUDE_FROM_ALL) -endif() add_subdirectory(3rdparty/winapi/utf8 EXCLUDE_FROM_ALL) file(GLOB_RECURSE winapi_common_include "include/*.hpp") @@ -16,7 +13,6 @@ file(GLOB winapi_common_src "src/*.cpp") add_library(winapi_common ${winapi_common_include} ${winapi_common_src}) target_include_directories(winapi_common PUBLIC include) target_link_libraries(winapi_common PRIVATE winapi_utf8) -target_link_libraries(winapi_common PUBLIC SafeInt) target_link_libraries(winapi_common PUBLIC Boost::disable_autolinking Boost::boost) install(TARGETS winapi_common ARCHIVE DESTINATION lib) install(DIRECTORY include/winapi DESTINATION include) diff --git a/include/winapi/buffer.hpp b/include/winapi/buffer.hpp index 11d029f..08094f8 100644 --- a/include/winapi/buffer.hpp +++ b/include/winapi/buffer.hpp @@ -5,8 +5,6 @@ #pragma once -#include - #include #include #include @@ -37,11 +35,7 @@ public: template void set(const std::basic_string& src) { - std::size_t new_size = 0; - if (!SafeMultiply(src.length(), sizeof(std::basic_string::char_type), new_size)) { - throw std::runtime_error{"Destination buffer size is too large"}; - } - set(src.c_str(), new_size); + set(src.c_str(), src.length() * sizeof(std::basic_string::char_type)); } void set(const void* src, std::size_t nb) { @@ -70,13 +64,7 @@ public: void add(const Buffer& src) { const auto nb = size(); - { - std::size_t new_size = 0; - if (!SafeAdd(size(), src.size(), new_size)) { - throw std::runtime_error{"Destination buffer size is too large"}; - } - resize(new_size); - } + resize(nb + src.size()); std::memcpy(data() + nb, src.data(), src.size()); } }; diff --git a/src/cmd_line.cpp b/src/cmd_line.cpp index 238e0bc..d2eeab5 100644 --- a/src/cmd_line.cpp +++ b/src/cmd_line.cpp @@ -8,8 +8,6 @@ #include #include -#include - #include #include @@ -102,7 +100,7 @@ std::string CommandLine::escape(const std::string& arg) { safe << '"'; for (auto it = arg.cbegin(); it != arg.cend(); ++it) { - SafeInt numof_backslashes{0}; + std::size_t numof_backslashes = 0; for (; it != arg.cend() && *it == '\\'; ++it) ++numof_backslashes; -- cgit v1.2.3