Skip site navigation (1)Skip section navigation (2)
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:   ports/94600: Port archivers/libunrar critical error
Message-ID:  <1142589640.39970@samm.local>
Resent-Message-ID: <200603171010.k2HAAFvI054229@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         94600
>Category:       ports
>Synopsis:       Port archivers/libunrar critical error
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Fri Mar 17 10:10:15 GMT 2006
>Closed-Date:
>Last-Modified:
>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:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1142589640.39970>