From d68d3a939f7f9e5acc6e5bf3271d878ad69782d6 Mon Sep 17 00:00:00 2001 From: Stefan Ritt Date: Thu, 8 Jul 2004 11:30:29 +0000 Subject: [PATCH] Fixed string overflow in rsputs2() SVN revision: 943 --- src/elogd.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/elogd.c b/src/elogd.c index c4cb45e4..579bfacd 100755 --- a/src/elogd.c +++ b/src/elogd.c @@ -6,6 +6,9 @@ Contents: Web server program for Electronic Logbook ELOG $Log$ + Revision 1.372 2004/07/08 11:30:29 midas + Fixed string overflow in rsputs2() + Revision 1.371 2004/07/07 15:53:11 midas Added error display if max. number of attribute options gets exceeded @@ -4380,7 +4383,7 @@ char *list[] = { "http://", "https://", "ftp://", "mailto:", "elog:", "file://", void rsputs2(const char *str) { int i, j, k, l, m, n; - char *p, *pd, link[1000], link_text[1000], tmp[256]; + char *p, *pd, link[1000], link_text[1000], tmp[1000]; if (strlen_retbuf + (int) strlen(str) > return_buffer_size) { return_buffer = realloc(return_buffer, return_buffer_size + 100000); @@ -4394,7 +4397,7 @@ void rsputs2(const char *str) if (strncmp(str + i, list[l], strlen(list[l])) == 0) { p = (char *) (str + i + strlen(list[l])); i += strlen(list[l]); - for (k = 0; *p && strcspn(p, " ,;\t\n\r({[)}]"); k++, i++) + for (k = 0; *p && strcspn(p, " ,;\t\n\r({[)}]") && k