From e000a6b4954cbf337112a36bb3a7cf8a6491a40f Mon Sep 17 00:00:00 2001
From: Přemysl Janouch
Date: Sun, 3 May 2015 06:20:36 +0200
Subject: degesch: fix segfault
---
degesch.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/degesch.c b/degesch.c
index 451d429..55fb325 100644
--- a/degesch.c
+++ b/degesch.c
@@ -1527,10 +1527,20 @@ buffer_send_internal (struct app_context *ctx, struct buffer *buffer,
buffer->lines_count++;
if (buffer == ctx->current_buffer)
+ {
buffer_line_display (ctx, line, false);
- else if (!ctx->isolate_buffers &&
- (buffer == ctx->global_buffer ||
- buffer == ctx->current_buffer->server->buffer))
+ return;
+ }
+
+ bool can_leak = false;
+ if ((buffer == ctx->global_buffer)
+ || (ctx->current_buffer->type == BUFFER_GLOBAL
+ && buffer->type == BUFFER_SERVER)
+ || (ctx->current_buffer->type != BUFFER_GLOBAL
+ && buffer == ctx->current_buffer->server->buffer))
+ can_leak = true;
+
+ if (!ctx->isolate_buffers && can_leak)
buffer_line_display (ctx, line, true);
else
{
--
cgit v1.2.3-70-g09d2