From 483d4670e1ccb9f5e61afcff1f687a7e7aa3ad4e Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Fri, 11 Nov 2005 23:01:21 +0000 Subject: [PATCH] Fixed crash when command line is ending by char '%' --- src/gui/curses/gui-display.c | 5 ++++- weechat/src/gui/curses/gui-display.c | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/gui/curses/gui-display.c b/src/gui/curses/gui-display.c index b52fe4590..e9670ff1b 100644 --- a/src/gui/curses/gui-display.c +++ b/src/gui/curses/gui-display.c @@ -349,7 +349,7 @@ gui_color_encode (unsigned char *string) unsigned char *out; int out_length, out_pos; - out_length = strlen ((char *)string) + 1; + out_length = (strlen ((char *)string) * 2) + 1; out = (unsigned char *)malloc (out_length); if (!out) return NULL; @@ -363,6 +363,9 @@ gui_color_encode (unsigned char *string) string++; switch (string[0]) { + case '\0': + out[out_pos++] = '%'; + break; case '%': /* double '%' replaced by single '%' */ out[out_pos++] = string[0]; string++; diff --git a/weechat/src/gui/curses/gui-display.c b/weechat/src/gui/curses/gui-display.c index b52fe4590..e9670ff1b 100644 --- a/weechat/src/gui/curses/gui-display.c +++ b/weechat/src/gui/curses/gui-display.c @@ -349,7 +349,7 @@ gui_color_encode (unsigned char *string) unsigned char *out; int out_length, out_pos; - out_length = strlen ((char *)string) + 1; + out_length = (strlen ((char *)string) * 2) + 1; out = (unsigned char *)malloc (out_length); if (!out) return NULL; @@ -363,6 +363,9 @@ gui_color_encode (unsigned char *string) string++; switch (string[0]) { + case '\0': + out[out_pos++] = '%'; + break; case '%': /* double '%' replaced by single '%' */ out[out_pos++] = string[0]; string++;