From 61dbf692b3789e87bfaeb648c729787c81795d29 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Tue, 5 Jun 2012 10:52:51 +0200 Subject: restructured cfsysline handling a bit so that we have cleaner code --- grammar/rainerscript.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'grammar/rainerscript.c') diff --git a/grammar/rainerscript.c b/grammar/rainerscript.c index 320e66d0..2752f4af 100644 --- a/grammar/rainerscript.c +++ b/grammar/rainerscript.c @@ -623,14 +623,13 @@ cnfactlstAddSysline(struct cnfactlst* actlst, char *line) struct cnfcfsyslinelst *cflst; if((cflst = malloc(sizeof(struct cnfcfsyslinelst))) != NULL) { - cflst->next = NULL; cflst->line = line; if(actlst->syslines == NULL) { - actlst->syslines = cflst; + cflst->next = NULL; } else { cflst->next = actlst->syslines; - actlst->syslines = cflst; } + actlst->syslines = cflst; } return actlst; } -- cgit v1.2.3 From 2c0548538ef0a2f86472f000d09e49eedf278caa Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Tue, 5 Jun 2012 11:41:55 +0200 Subject: regression fix: last memleak bugfix caused abort in some situations The problem was introduced by the fix I did roughly an hour ago. Obviously, no released version is affected. --- grammar/rainerscript.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'grammar/rainerscript.c') diff --git a/grammar/rainerscript.c b/grammar/rainerscript.c index 2752f4af..66932c77 100644 --- a/grammar/rainerscript.c +++ b/grammar/rainerscript.c @@ -1409,6 +1409,9 @@ cnfrulePrint(struct cnfrule *rule) dbgprintf("------ end rule %p\n", rule); } +/* note: the sysline itself was already freed during processing + * and as such MUST NOT be freed again! + */ void cnfcfsyslinelstDestruct(struct cnfcfsyslinelst *cfslst) { @@ -1416,7 +1419,6 @@ cnfcfsyslinelstDestruct(struct cnfcfsyslinelst *cfslst) while(cfslst != NULL) { toDel = cfslst; cfslst = cfslst->next; - free(toDel->line); free(toDel); } } -- cgit v1.2.3