From samm@os2.kiev.ua  Fri Mar 17 10:00:42 2006
Return-Path: <samm@os2.kiev.ua>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 265C816A400
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 17 Mar 2006 10:00:42 +0000 (UTC)
	(envelope-from samm@os2.kiev.ua)
Received: from el.volia.net (el.volia.net [82.144.192.38])
	by mx1.FreeBSD.org (Postfix) with ESMTP id B5DA043D46
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 17 Mar 2006 10:00:41 +0000 (GMT)
	(envelope-from samm@os2.kiev.ua)
Received: from ip.85.202.203.234.dyn.sub-4.broadband.voliacable.com ([85.202.203.234] helo=samm.local)
	by el.volia.net with esmtp (Exim 4.43 (FreeBSD))
	id 1FKBl8-00074f-Dt; Fri, 17 Mar 2006 12:00:39 +0200
Message-Id: <1142589640.39970@samm.local>
Date: Fri, 17 Mar 2006 12:00:40 +0200
From: "Alex Samorukov" <samm@os2.kiev.ua>
To: "FreeBSD gnats submit" <FreeBSD-gnats-submit@freebsd.org>
Cc: samm@os2.kiev.ua
Subject: Port archivers/libunrar critical error
X-Send-Pr-Version: gtk-send-pr 0.4.6 
X-GNATS-Notify:

>Number:         94600
>Category:       ports
>Synopsis:       Port archivers/libunrar critical error
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    mnag
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Fri Mar 17 10:10:15 GMT 2006
>Closed-Date:    Fri Mar 17 12:54:34 GMT 2006
>Last-Modified:  Fri Mar 17 12:54:34 GMT 2006
>Originator:     Alex Samorukov
>Release:        FreeBSD 6.0-RELEASE i386
>Organization:
Shevchenko Didkovskiy and Partners 
>Environment:


System: FreeBSD 6.0-RELEASE #1: Wed Feb  8 23:30:22 EET 2006
    root@samm.local:/usr/obj/usr/src/sys/SAMMKRNL



>Description:


libunrar library have critical error which can cause hanging with 100% cpu load. Error was found and fixed by McMCC.


>How-To-Repeat:


1) Compile security/clamav with LIBUNRAR support
2) download file http://mcmcc.bat.ru/clamav/hz.rar
3) Check file hz.rar using clamdscan
clamd will hanf with 100% cpu load.


>Fix:


diff -u -r --new-file libunrar.ori/Makefile libunrar/Makefile
--- libunrar.ori/Makefile       Fri Mar 17 11:50:39 2006
+++ libunrar/Makefile   Fri Mar 17 11:54:33 2006
@@ -7,6 +7,7 @@
 
 PORTNAME=      libunrar
 PORTVERSION=   3.54
+PORTREVISION=  1
 CATEGORIES=    archivers
 MASTER_SITES=  http://files2.rarlab.com/rar/ \
                http://files3.rarlab.com/rar/ \
diff -u -r --new-file libunrar.ori/files/patch-dll.cpp libunrar/files/patch-dll.cpp
--- libunrar.ori/files/patch-dll.cpp    Thu Jan  1 03:00:00 1970
+++ libunrar/files/patch-dll.cpp        Thu Mar 16 20:20:16 2006
@@ -0,0 +1,16 @@
+diff -ruN unrar.orig/dll.cpp unrar/dll.cpp
+--- dll.cpp.orig       2005-08-03 20:34:30.000000000 +0400
++++ dll.cpp    2006-01-11 12:13:33.000000000 +0300
+@@ -271,8 +271,10 @@
+       strcpy(Data->Cmd.Command,Operation==RAR_EXTRACT ? "X":"T");
+       Data->Cmd.Test=Operation!=RAR_EXTRACT;
+       bool Repeat=false;
+-      Data->Extract.ExtractCurrentFile(&Data->Cmd,Data->Arc,Data->HeaderSize,Repeat);
+-
++      
++      if(Data->Extract.ExtractCurrentFile(&Data->Cmd,Data->Arc,Data->HeaderSize,Repeat) == false)
++        return (ERAR_UNKNOWN);
++
+       while (Data->Arc.ReadHeader()!=0 && Data->Arc.GetHeaderType()==NEWSUB_HEAD)
+       {
+         Data->Extract.ExtractCurrentFile(&Data->Cmd,Data->Arc,Data->HeaderSize,Repeat);



>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->mnag 
Responsible-Changed-By: mnag 
Responsible-Changed-When: Fri Mar 17 12:45:23 UTC 2006 
Responsible-Changed-Why:  
I'll take it. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=94600 
State-Changed-From-To: open->closed 
State-Changed-By: mnag 
State-Changed-When: Fri Mar 17 12:54:33 UTC 2006 
State-Changed-Why:  
Committed. Thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=94600 
>Unformatted:
