dxf: [skip ci] Coverity: Buffer not null terminated

This commit is contained in:
wmayer
2020-09-14 14:37:20 +02:00
parent d3d8ea841d
commit c3d35c65fe
3 changed files with 36 additions and 3 deletions

View File

@@ -1575,9 +1575,20 @@ void CDxfRead::get_line()
strcpy(m_str, str);
}
void dxf_strncpy(char* dst, const char* src, size_t size)
{
size_t ret = strlen(src);
if (size) {
size_t len = (ret >= size) ? size - 1 : ret;
memcpy(dst, src, len);
dst[len] = '\0';
}
}
void CDxfRead::put_line(const char *value)
{
strncpy( m_unused_line, value, sizeof(m_unused_line) );
dxf_strncpy( m_unused_line, value, sizeof(m_unused_line) );
}

View File

@@ -3153,9 +3153,20 @@ void CDxfRead::get_line()
strcpy(m_str, str);
}
void dxf_strncpy(char* dst, const char* src, size_t size)
{
size_t ret = strlen(src);
if (size) {
size_t len = (ret >= size) ? size - 1 : ret;
memcpy(dst, src, len);
dst[len] = '\0';
}
}
void CDxfRead::put_line(const char *value)
{
strncpy( m_unused_line, value, sizeof(m_unused_line) );
dxf_strncpy( m_unused_line, value, sizeof(m_unused_line) );
}

View File

@@ -1378,9 +1378,20 @@ void CDxfRead::get_line()
strcpy(m_str, str);
}
void dxf_strncpy(char* dst, const char* src, size_t size)
{
size_t ret = strlen(src);
if (size) {
size_t len = (ret >= size) ? size - 1 : ret;
memcpy(dst, src, len);
dst[len] = '\0';
}
}
void CDxfRead::put_line(const char *value)
{
strncpy( m_unused_line, value, sizeof(m_unused_line) );
dxf_strncpy( m_unused_line, value, sizeof(m_unused_line) );
}