mirror of
https://gitea.psi.ch/ELOG/mxml.git
synced 2026-09-15 04:43:17 +00:00
fix memory corruption - mxml_write_line() did not allocate sufficient buffer space for the given string length
This commit is contained in:
parent
20b4610931
commit
c1800348bd
7
mxml.c
7
mxml.c
@ -170,14 +170,15 @@ void mxml_deallocate(void)
|
|||||||
|
|
||||||
int mxml_write_line(MXML_WRITER *writer, const char *line)
|
int mxml_write_line(MXML_WRITER *writer, const char *line)
|
||||||
{
|
{
|
||||||
int len;
|
unsigned len;
|
||||||
|
|
||||||
len = (int)strlen(line);
|
len = strlen(line);
|
||||||
|
|
||||||
if (writer->buffer) {
|
if (writer->buffer) {
|
||||||
if (writer->buffer_len + len >= writer->buffer_size) {
|
if (writer->buffer_len + len >= writer->buffer_size) {
|
||||||
writer->buffer_size += 10000;
|
writer->buffer_size += len + 10000;
|
||||||
writer->buffer = (char *)mxml_realloc(writer->buffer, writer->buffer_size);
|
writer->buffer = (char *)mxml_realloc(writer->buffer, writer->buffer_size);
|
||||||
|
assert(writer->buffer);
|
||||||
}
|
}
|
||||||
strcpy(writer->buffer + writer->buffer_len, line);
|
strcpy(writer->buffer + writer->buffer_len, line);
|
||||||
writer->buffer_len += len;
|
writer->buffer_len += len;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user