diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/xplist.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/xplist.c b/src/xplist.c index 29b1284..739b5ab 100644 --- a/src/xplist.c +++ b/src/xplist.c | |||
| @@ -293,7 +293,10 @@ static void node_to_xml(node_t* node, bytearray_t **outbuf, uint32_t depth) | |||
| 293 | uint32_t maxread = ((76 - indent*8) / 4) * 3; | 293 | uint32_t maxread = ((76 - indent*8) / 4) * 3; |
| 294 | size_t count = 0; | 294 | size_t count = 0; |
| 295 | size_t b64count = 0; | 295 | size_t b64count = 0; |
| 296 | str_buf_grow(*outbuf, (node_data->length / 3 * 4) + 4 + (((node_data->length / maxread) + 1) * (indent+1))); | 296 | size_t amount = (node_data->length / 3 * 4) + 4 + (((node_data->length / maxread) + 1) * (indent+1)); |
| 297 | if ((*outbuf)->len + amount > (*outbuf)->capacity) { | ||
| 298 | str_buf_grow(*outbuf, amount); | ||
| 299 | } | ||
| 297 | while (j < node_data->length) { | 300 | while (j < node_data->length) { |
| 298 | for (i = 0; i < indent; i++) { | 301 | for (i = 0; i < indent; i++) { |
| 299 | str_buf_append(*outbuf, "\t", 1); | 302 | str_buf_append(*outbuf, "\t", 1); |
