From fdcd79a2c027f675bd74bf4782304be8c2307463 Mon Sep 17 00:00:00 2001 From: Bryan Lipinski Date: Tue, 19 Mar 2019 13:01:49 -0700 Subject: [PATCH 1/2] Gate stdext::checked_array_iterator usage on _ITERATOR_DEBUG_LEVEL --- Release/include/cpprest/containerstream.h | 2 +- Release/include/cpprest/producerconsumerstream.h | 4 ++-- Release/include/cpprest/rawptrstream.h | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Release/include/cpprest/containerstream.h b/Release/include/cpprest/containerstream.h index 7f670d62c4..376ad00648 100644 --- a/Release/include/cpprest/containerstream.h +++ b/Release/include/cpprest/containerstream.h @@ -399,7 +399,7 @@ class basic_container_buffer : public streams::details::streambuf_state_manager< auto readBegin = std::begin(m_data) + m_current_position; auto readEnd = std::begin(m_data) + newPos; -#ifdef _WIN32 +#if defined(_WIN32) && (_ITERATOR_DEBUG_LEVEL != 0) // Avoid warning C4996: Use checked iterators under SECURE_SCL std::copy(readBegin, readEnd, stdext::checked_array_iterator<_CharType*>(ptr, count)); #else diff --git a/Release/include/cpprest/producerconsumerstream.h b/Release/include/cpprest/producerconsumerstream.h index 39a57a7306..e33f6aa727 100644 --- a/Release/include/cpprest/producerconsumerstream.h +++ b/Release/include/cpprest/producerconsumerstream.h @@ -438,7 +438,7 @@ class basic_producer_consumer_buffer : public streams::details::streambuf_state_ _CharType* beg = rbegin(); _CharType* end = rbegin() + countRead; -#ifdef _WIN32 +#if defined(_WIN32) && (_ITERATOR_DEBUG_LEVEL != 0) // Avoid warning C4996: Use checked iterators under SECURE_SCL std::copy(beg, end, stdext::checked_array_iterator<_CharType*>(dest, count)); #else @@ -461,7 +461,7 @@ class basic_producer_consumer_buffer : public streams::details::streambuf_state_ const _CharType* srcEnd = src + countWritten; -#ifdef _WIN32 +#if defined(_WIN32) && (_ITERATOR_DEBUG_LEVEL != 0) // Avoid warning C4996: Use checked iterators under SECURE_SCL std::copy(src, srcEnd, stdext::checked_array_iterator<_CharType*>(wbegin(), static_cast(avail))); #else diff --git a/Release/include/cpprest/rawptrstream.h b/Release/include/cpprest/rawptrstream.h index 2b0a97f86a..f7a8e1e9ca 100644 --- a/Release/include/cpprest/rawptrstream.h +++ b/Release/include/cpprest/rawptrstream.h @@ -439,7 +439,7 @@ class basic_rawptr_buffer : public streams::details::streambuf_state_manager<_Ch auto readBegin = m_data + m_current_position; auto readEnd = m_data + newPos; -#ifdef _WIN32 +#if defined(_WIN32) && (_ITERATOR_DEBUG_LEVEL != 0) // Avoid warning C4996: Use checked iterators under SECURE_SCL std::copy(readBegin, readEnd, stdext::checked_array_iterator<_CharType*>(ptr, count)); #else @@ -466,7 +466,7 @@ class basic_rawptr_buffer : public streams::details::streambuf_state_manager<_Ch if (newSize > m_size) throw std::runtime_error("Writing past the end of the buffer"); // Copy the data -#ifdef _WIN32 +#if defined(_WIN32) && (_ITERATOR_DEBUG_LEVEL != 0) // Avoid warning C4996: Use checked iterators under SECURE_SCL std::copy(ptr, ptr + count, stdext::checked_array_iterator<_CharType*>(m_data, m_size, m_current_position)); #else From bb423e252415d9ec209472f61eef808c87276850 Mon Sep 17 00:00:00 2001 From: Bryan Lipinski Date: Tue, 19 Mar 2019 17:02:54 -0700 Subject: [PATCH 2/2] PR Feedback --- Release/include/cpprest/containerstream.h | 2 +- Release/include/cpprest/producerconsumerstream.h | 4 ++-- Release/include/cpprest/rawptrstream.h | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Release/include/cpprest/containerstream.h b/Release/include/cpprest/containerstream.h index 376ad00648..6e949a75e0 100644 --- a/Release/include/cpprest/containerstream.h +++ b/Release/include/cpprest/containerstream.h @@ -399,7 +399,7 @@ class basic_container_buffer : public streams::details::streambuf_state_manager< auto readBegin = std::begin(m_data) + m_current_position; auto readEnd = std::begin(m_data) + newPos; -#if defined(_WIN32) && (_ITERATOR_DEBUG_LEVEL != 0) +#if defined(_ITERATOR_DEBUG_LEVEL) && _ITERATOR_DEBUG_LEVEL != 0 // Avoid warning C4996: Use checked iterators under SECURE_SCL std::copy(readBegin, readEnd, stdext::checked_array_iterator<_CharType*>(ptr, count)); #else diff --git a/Release/include/cpprest/producerconsumerstream.h b/Release/include/cpprest/producerconsumerstream.h index e33f6aa727..bbdb2c1c85 100644 --- a/Release/include/cpprest/producerconsumerstream.h +++ b/Release/include/cpprest/producerconsumerstream.h @@ -438,7 +438,7 @@ class basic_producer_consumer_buffer : public streams::details::streambuf_state_ _CharType* beg = rbegin(); _CharType* end = rbegin() + countRead; -#if defined(_WIN32) && (_ITERATOR_DEBUG_LEVEL != 0) +#if defined(_ITERATOR_DEBUG_LEVEL) && _ITERATOR_DEBUG_LEVEL != 0 // Avoid warning C4996: Use checked iterators under SECURE_SCL std::copy(beg, end, stdext::checked_array_iterator<_CharType*>(dest, count)); #else @@ -461,7 +461,7 @@ class basic_producer_consumer_buffer : public streams::details::streambuf_state_ const _CharType* srcEnd = src + countWritten; -#if defined(_WIN32) && (_ITERATOR_DEBUG_LEVEL != 0) +#if defined(_ITERATOR_DEBUG_LEVEL) && _ITERATOR_DEBUG_LEVEL != 0 // Avoid warning C4996: Use checked iterators under SECURE_SCL std::copy(src, srcEnd, stdext::checked_array_iterator<_CharType*>(wbegin(), static_cast(avail))); #else diff --git a/Release/include/cpprest/rawptrstream.h b/Release/include/cpprest/rawptrstream.h index f7a8e1e9ca..1f15ecbe77 100644 --- a/Release/include/cpprest/rawptrstream.h +++ b/Release/include/cpprest/rawptrstream.h @@ -439,7 +439,7 @@ class basic_rawptr_buffer : public streams::details::streambuf_state_manager<_Ch auto readBegin = m_data + m_current_position; auto readEnd = m_data + newPos; -#if defined(_WIN32) && (_ITERATOR_DEBUG_LEVEL != 0) +#if defined(_ITERATOR_DEBUG_LEVEL) && _ITERATOR_DEBUG_LEVEL != 0 // Avoid warning C4996: Use checked iterators under SECURE_SCL std::copy(readBegin, readEnd, stdext::checked_array_iterator<_CharType*>(ptr, count)); #else @@ -466,7 +466,7 @@ class basic_rawptr_buffer : public streams::details::streambuf_state_manager<_Ch if (newSize > m_size) throw std::runtime_error("Writing past the end of the buffer"); // Copy the data -#if defined(_WIN32) && (_ITERATOR_DEBUG_LEVEL != 0) +#if defined(_ITERATOR_DEBUG_LEVEL) && _ITERATOR_DEBUG_LEVEL != 0 // Avoid warning C4996: Use checked iterators under SECURE_SCL std::copy(ptr, ptr + count, stdext::checked_array_iterator<_CharType*>(m_data, m_size, m_current_position)); #else