Fixed return buffer overflow with very long entries

SVN revision: 2157
This commit is contained in:
2008-12-18 11:02:21 +00:00
parent d5d31cd889
commit c7180adca0
+3 -3
View File
@@ -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);