From c7180adca04023132a146caaf79d0d2bd0a502bf Mon Sep 17 00:00:00 2001 From: Stefan Ritt Date: Thu, 18 Dec 2008 11:02:21 +0000 Subject: [PATCH] Fixed return buffer overflow with very long entries SVN revision: 2157 --- src/elogd.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/elogd.c b/src/elogd.c index afe369d4..83214560 100755 --- a/src/elogd.c +++ b/src/elogd.c @@ -5605,9 +5605,9 @@ void convert_elog_link(LOGBOOK * lbs, char *link, char *link_text, char *result, void rsputs(const char *str) { if (strlen_retbuf + (int) strlen(str) + 1 >= return_buffer_size) { - return_buffer = xrealloc(return_buffer, return_buffer_size + 100000); - memset(return_buffer + return_buffer_size, 0, 100000); - return_buffer_size += 100000; + return_buffer = xrealloc(return_buffer, return_buffer_size + (int) strlen(str) + 100000); + memset(return_buffer + return_buffer_size, 0, (int) strlen(str) + 100000); + return_buffer_size += (int) strlen(str)+100000; } strcpy(return_buffer + strlen_retbuf, str);