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>