]> wimlib.net Git - wimlib/blobdiff - src/xmlproc.c
xmlproc: fix buffer enlargement logic
[wimlib] / src / xmlproc.c
index 6e1d2c168f4f7bd968a0c3ffaa434fb6161265f4..8ce193e93028045716f090233f028ce93a67d359 100644 (file)
@@ -665,7 +665,8 @@ static void
 xml_write(struct xml_out_buf *buf, const tchar *str, size_t len)
 {
        if (buf->count + len + 1 > buf->capacity) {
-               size_t new_capacity = max(buf->capacity * 2, 4096);
+               size_t new_capacity = max3(buf->count + len + 1,
+                                          buf->capacity * 2, 4096);
                tchar *new_buf = REALLOC(buf->buf,
                                         new_capacity * sizeof(str[0]));
                if (!new_buf) {