From c499a2afe19c02a3826d2f61bc3a747e6fdbffdf Mon Sep 17 00:00:00 2001 From: "Enno Boland (Gottox)" Date: Wed, 2 Jul 2008 09:43:21 +0200 Subject: [PATCH] adding reallocz, adding workaround for segfault, some reformating. --- smu.c | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/smu.c b/smu.c index bd31f2a..a1f1d17 100644 --- a/smu.c +++ b/smu.c @@ -31,6 +31,7 @@ static int doreplace(const char *begin, const char *end, int newblock); /* Par static int doshortlink(const char *begin, const char *end, int newblock); /* Parser for links and images */ static int dosurround(const char *begin, const char *end, int newblock); /* Parser for surrounding tags */ static int dounderline(const char *begin, const char *end, int newblock); /* Parser for underline tags */ +static void *ereallocz(void *p, size_t size); static void hprint(const char *begin, const char *end); /* escapes HTML and prints it to output */ static void process(const char *begin, const char *end, int isblock); /* Processes range between begin and end. */ @@ -274,7 +275,7 @@ int dolist(const char *begin, const char *end, int newblock) { unsigned int i, j, indent, run, ul, isblock; const char *p, *q; - char *buffer; + char *buffer = NULL; isblock = 0; if(newblock) @@ -297,8 +298,7 @@ dolist(const char *begin, const char *end, int newblock) { return 0; for(p++; p != end && (*p == ' ' || *p == '\t'); p++); indent = p - q; - if(!(buffer = malloc(BUFSIZ))) - eprint("Malloc failed."); + buffer = ereallocz(buffer, BUFSIZ); if(!newblock) fputc('\n', stdout); fputs(ul ? "