[Pkg-clamav-commits] [SCM] Debian repository for ClamAV branch, debian/unstable, updated. debian/0.95+dfsg-1-6633-g2c817b2

Michael Tautschnig mt at debian.org
Tue Jan 18 23:26:37 UTC 2011


The following commit has been merged in the debian/unstable branch:
commit 4cb2cd4da7e5efed25fa264b420ea495d7c2654b
Author: Michael Tautschnig <mt at debian.org>
Date:   Tue Jan 18 21:46:06 2011 +0000

    Fix paranoid mode crash (bb #2434).
    
    Only occurs if Paranoid mode is set in clamd.conf, or unsigned and signed
    bytecode are loaded together in --enable-unsigned-bytecode mode.
    
    Conflicts:
    
    	ChangeLog
    
    Signed-off-by: Michael Tautschnig <mt at debian.org>

diff --git a/libclamav/c++/ClamBCRTChecks.cpp b/libclamav/c++/ClamBCRTChecks.cpp
index d3def6a..a74476c 100644
--- a/libclamav/c++/ClamBCRTChecks.cpp
+++ b/libclamav/c++/ClamBCRTChecks.cpp
@@ -117,8 +117,16 @@ namespace {
 
       std::vector<Instruction*> insns;
 
+      BasicBlock *LastBB = 0;
+      bool skip = false;
       for (inst_iterator I=inst_begin(F),E=inst_end(F); I != E;++I) {
         Instruction *II = &*I;
+	if (II->getParent() != LastBB) {
+	    LastBB = II->getParent();
+	    skip = DT->getNode(LastBB) == 0;
+	}
+	if (skip)
+	    continue;
         if (isa<LoadInst>(II) || isa<StoreInst>(II) || isa<MemIntrinsic>(II))
           insns.push_back(II);
         if (CallInst *CI = dyn_cast<CallInst>(II)) {

-- 
Debian repository for ClamAV



More information about the Pkg-clamav-commits mailing list