ports/85113: Patch for double-free in port www/squirm

Phil Kernick philk at rotfl.com.au
Fri Aug 19 05:20:15 UTC 2005


>Number:         85113
>Category:       ports
>Synopsis:       Patch for double-free in port www/squirm
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Aug 19 05:20:14 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Phil Kernick
>Release:        FreeBSD 5.4-RELEASE-p6 i386
>Organization:
>Environment:
System: FreeBSD catbert.rotfl.com.au 5.4-RELEASE-p6 FreeBSD 5.4-RELEASE-p6 #0: Mon Aug 15 13:12:48 CST 2005 root at catbert.rotfl.com.au:/usr/src/sys/i386/compile/CATBERT i386


	
>Description:

port www/squirm under FreeBSD 5.4 aborts with a chunk already freed error.

This is a software bug in the application and causes it to not work at all
under 5.x.

>How-To-Repeat:

Run squirm as root from a command line, and press Ctrl+D.
squirm will about with an "error: chunk is already free".

>Fix:

Apply this patch to fix the problem:

--- lists.c.orig	Fri Aug 19 13:53:29 2005
+++ lists.c	Fri Aug 19 14:23:42 2005
@@ -366,7 +366,6 @@
     next = head->next;
     if(head->patterns.pattern) {
       cfree(head->patterns.pattern);
-      regfree(&(head->patterns.cpattern));
     }
     if(head->patterns.replacement)
       cfree(head->patterns.replacement);
@@ -383,7 +382,6 @@
     
     if(prev->patterns.pattern) {
       cfree(prev->patterns.pattern);
-      regfree(&(prev->patterns.cpattern));
     }
     if(prev->patterns.replacement)
       cfree(prev->patterns.replacement);



>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list