stream: assert buffer is not nullptr before use
Signed-off-by: Simon Rozman <simon@rozman.si>
This commit is contained in:
parent
191f3bb2f9
commit
7bb614a34f
@ -3568,6 +3568,7 @@ namespace stdex
|
||||
#endif
|
||||
size_t available = m_size - m_offset;
|
||||
if (length <= available) {
|
||||
stdex_assert(m_data || !length);
|
||||
memcpy(data, &m_data[m_offset], length);
|
||||
m_offset += length;
|
||||
m_state = state_t::ok;
|
||||
@ -3577,6 +3578,7 @@ namespace stdex
|
||||
m_state = state_t::eof;
|
||||
return 0;
|
||||
}
|
||||
stdex_assert(m_data || !available);
|
||||
memcpy(data, &m_data[m_offset], available);
|
||||
m_offset += available;
|
||||
m_state = state_t::ok;
|
||||
@ -3609,6 +3611,7 @@ namespace stdex
|
||||
}
|
||||
size_t end_offset = stdex::add(m_offset, sizeof(T));
|
||||
if (end_offset <= m_size) {
|
||||
stdex_assert(m_data);
|
||||
data = LE2HE(*reinterpret_cast<T*>(&m_data[m_offset]));
|
||||
m_offset = end_offset;
|
||||
#if !CHECK_STREAM_STATE
|
||||
@ -3649,6 +3652,7 @@ namespace stdex
|
||||
}
|
||||
size_t end_offset = stdex::add(m_offset, sizeof(uint32_t));
|
||||
if (end_offset <= m_size) {
|
||||
stdex_assert(m_data);
|
||||
uint32_t num_chars = LE2HE(*reinterpret_cast<uint32_t*>(&m_data[m_offset]));
|
||||
m_offset = end_offset;
|
||||
end_offset = stdex::add(m_offset, stdex::mul(num_chars, sizeof(T)));
|
||||
@ -3682,6 +3686,7 @@ namespace stdex
|
||||
if (!ok()) _Unlikely_
|
||||
return 0;
|
||||
}
|
||||
stdex_assert(m_data || !length);
|
||||
memcpy(&m_data[m_offset], data, length);
|
||||
m_offset = end_offset;
|
||||
if (m_offset > m_size)
|
||||
@ -3704,6 +3709,7 @@ namespace stdex
|
||||
if (!ok()) _Unlikely_
|
||||
return;
|
||||
}
|
||||
stdex_assert(m_data || !amount);
|
||||
memset(&m_data[m_offset], byte, amount);
|
||||
m_offset = end_offset;
|
||||
if (m_offset > m_size)
|
||||
@ -3739,6 +3745,7 @@ namespace stdex
|
||||
if (!ok()) _Unlikely_
|
||||
return *this;
|
||||
}
|
||||
stdex_assert(m_data);
|
||||
(*reinterpret_cast<T*>(&m_data[m_offset])) = HE2LE(data);
|
||||
m_offset = end_offset;
|
||||
if (m_offset > m_size)
|
||||
@ -3782,6 +3789,7 @@ namespace stdex
|
||||
if (!ok()) _Unlikely_
|
||||
return *this;
|
||||
}
|
||||
stdex_assert(m_data);
|
||||
auto p = &m_data[m_offset];
|
||||
*reinterpret_cast<uint32_t*>(p) = HE2LE((uint32_t)num_chars);
|
||||
memcpy(p + sizeof(uint32_t), data, size_chars);
|
||||
@ -3827,6 +3835,7 @@ namespace stdex
|
||||
if (!ok()) _Unlikely_
|
||||
return *this;
|
||||
}
|
||||
stdex_assert(m_data);
|
||||
auto p = &m_data[m_offset];
|
||||
*reinterpret_cast<uint32_t*>(p) = HE2LE((uint32_t)num_chars);
|
||||
memcpy(p + sizeof(uint32_t), data.data(), size_chars);
|
||||
@ -3858,6 +3867,7 @@ namespace stdex
|
||||
if (!ok()) _Unlikely_
|
||||
return 0;
|
||||
while (to_write) {
|
||||
stdex_assert(m_data || !to_write);
|
||||
num_read = stream.read(&m_data[dst_offset], to_write);
|
||||
/*dst_size =*/ dst_offset += num_read;
|
||||
num_copied += num_read;
|
||||
@ -3877,6 +3887,7 @@ namespace stdex
|
||||
reserve(dst_size);
|
||||
if (!ok()) _Unlikely_
|
||||
break;
|
||||
stdex_assert(m_data || !block_size);
|
||||
num_read = stream.read(&m_data[dst_offset], block_size);
|
||||
dst_size = dst_offset += num_read;
|
||||
num_copied += num_read;
|
||||
@ -3989,6 +4000,7 @@ namespace stdex
|
||||
#if SET_FILE_OP_TIMES
|
||||
m_atime = m_mtime = time_point::now();
|
||||
#endif
|
||||
stdex_assert(m_data);
|
||||
stdex_assert(offset + sizeof(T) < m_size);
|
||||
(*reinterpret_cast<T*>(&m_data[offset])) = HE2LE(data);
|
||||
}
|
||||
@ -4020,6 +4032,7 @@ namespace stdex
|
||||
template <class T>
|
||||
void get(_In_ fpos_t offset, _Out_ T & data)
|
||||
{
|
||||
stdex_assert(m_data);
|
||||
stdex_assert(offset + sizeof(T) < m_size);
|
||||
data = LE2HE(*(T*)(&m_data[offset]));
|
||||
#if SET_FILE_OP_TIMES
|
||||
|
Loading…
x
Reference in New Issue
Block a user