]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm: Table formatter crashed with large output.
authorTimo Sirainen <tss@iki.fi>
Mon, 21 Jun 2010 14:26:00 +0000 (15:26 +0100)
committerTimo Sirainen <tss@iki.fi>
Mon, 21 Jun 2010 14:26:00 +0000 (15:26 +0100)
--HG--
branch : HEAD

src/doveadm/doveadm-print-table.c

index 33d112c70a0211acc01f41369cc2152ecd596ec9..8ef6a65421d7f85d518f60e063ab46cdea17abf7 100644 (file)
@@ -154,8 +154,12 @@ static void doveadm_buffer_flush(void)
 
 static void doveadm_print_table_print(const char *value)
 {
+       unsigned int line_count;
+
        if (!ctx->lengths_set) {
-               if (array_count(&ctx->buffered_values) < MAX_BUFFER_LINES) {
+               line_count = array_count(&ctx->buffered_values) /
+                       array_count(&ctx->headers);
+               if (line_count < MAX_BUFFER_LINES) {
                        value = p_strdup(ctx->pool, value);
                        array_append(&ctx->buffered_values, &value, 1);
                        return;