diff options
author | garga <garga@FreeBSD.org> | 2011-07-27 06:24:21 +0800 |
---|---|---|
committer | garga <garga@FreeBSD.org> | 2011-07-27 06:24:21 +0800 |
commit | f63d2c264beddfdcaee21856efe0753a442f1652 (patch) | |
tree | a3c2c5202beaee384bd4daae264b5cff495483f3 /security/clamav | |
parent | bc0ce287cd4d50f95433e0b25ecd0169e633d61d (diff) | |
download | freebsd-ports-gnome-f63d2c264beddfdcaee21856efe0753a442f1652.tar.gz freebsd-ports-gnome-f63d2c264beddfdcaee21856efe0753a442f1652.tar.zst freebsd-ports-gnome-f63d2c264beddfdcaee21856efe0753a442f1652.zip |
- Update to 0.97.2
PR: ports/159185 (based on)
Submitted by: Michael Scheidell <scheidell@secnap.net>
Diffstat (limited to 'security/clamav')
-rw-r--r-- | security/clamav/Makefile | 2 | ||||
-rw-r--r-- | security/clamav/distinfo | 4 | ||||
-rw-r--r-- | security/clamav/files/patch-libclamav__c++__PointerTracking.h | 135 | ||||
-rw-r--r-- | security/clamav/files/patch-unit_tests-check_common_sh | 24 |
4 files changed, 3 insertions, 162 deletions
diff --git a/security/clamav/Makefile b/security/clamav/Makefile index 8b72bf07e7cd..243fce35ca33 100644 --- a/security/clamav/Makefile +++ b/security/clamav/Makefile @@ -6,7 +6,7 @@ # PORTNAME= clamav -PORTVERSION= 0.97.1 +PORTVERSION= 0.97.2 CATEGORIES= security MASTER_SITES= SF diff --git a/security/clamav/distinfo b/security/clamav/distinfo index c00094517685..e6af0d39e000 100644 --- a/security/clamav/distinfo +++ b/security/clamav/distinfo @@ -1,2 +1,2 @@ -SHA256 (clamav-0.97.1.tar.gz) = 69e9c102d56348266b6597d6d401b0a5a2190e158b78e75ee0591f90479ed2ca -SIZE (clamav-0.97.1.tar.gz) = 43913867 +SHA256 (clamav-0.97.2.tar.gz) = 91503f8cff482cac1f2c951c5d62a7da8a17ba3b32eb8fa2800e29c03c7cd58a +SIZE (clamav-0.97.2.tar.gz) = 44703953 diff --git a/security/clamav/files/patch-libclamav__c++__PointerTracking.h b/security/clamav/files/patch-libclamav__c++__PointerTracking.h deleted file mode 100644 index 6fd61bd5060d..000000000000 --- a/security/clamav/files/patch-libclamav__c++__PointerTracking.h +++ /dev/null @@ -1,135 +0,0 @@ ---- libclamav/c++/PointerTracking.h.orig 1969-12-31 21:00:00.000000000 -0300 -+++ libclamav/c++/PointerTracking.h 2011-07-05 10:11:36.000000000 -0300 -@@ -0,0 +1,132 @@ -+//===- PointerTracking.h - Pointer Bounds Tracking --------------*- C++ -*-===// -+// -+// The LLVM Compiler Infrastructure -+// -+// This file is distributed under the University of Illinois Open Source -+// License. See LICENSE.TXT for details. -+// -+//===----------------------------------------------------------------------===// -+// -+// This file implements tracking of pointer bounds. -+// It knows that the libc functions "calloc" and "realloc" allocate memory, thus -+// you should avoid using this pass if they mean something else for your -+// language. -+// -+// All methods assume that the pointer is not NULL, if it is then the returned -+// allocation size is wrong, and the result from checkLimits is wrong too. -+// It also assumes that pointers are valid, and that it is not analyzing a -+// use-after-free scenario. -+// Due to these limitations the "size" returned by these methods should be -+// considered as either 0 or the returned size. -+// -+// Another analysis pass should be used to find use-after-free/NULL dereference -+// bugs. -+// -+//===----------------------------------------------------------------------===// -+ -+#ifndef LLVM_ANALYSIS_POINTERTRACKING_H -+#define LLVM_ANALYSIS_POINTERTRACKING_H -+ -+#include "llvm/ADT/SmallPtrSet.h" -+#include "llvm/Analysis/Dominators.h" -+#include "llvm/Instructions.h" -+#include "llvm/Pass.h" -+#include "llvm/Support/PredIteratorCache.h" -+ -+namespace llvm { -+ class DominatorTree; -+ class ScalarEvolution; -+ class SCEV; -+ class Loop; -+ class LoopInfo; -+ class TargetData; -+ -+ // Result from solver, assuming pointer is not NULL, -+ // and it is not a use-after-free situation. -+ enum SolverResult { -+ AlwaysFalse,// always false with above constraints -+ AlwaysTrue,// always true with above constraints -+ Unknown // it can sometimes be true, sometimes false, or it is undecided -+ }; -+ -+ class PointerTracking : public FunctionPass { -+ public: -+ typedef ICmpInst::Predicate Predicate; -+ static char ID; -+ PointerTracking(); -+ -+ virtual bool doInitialization(Module &M); -+ -+ // If this pointer directly points to an allocation, return -+ // the number of elements of type Ty allocated. -+ // Otherwise return CouldNotCompute. -+ // Since allocations can fail by returning NULL, the real element count -+ // for every allocation is either 0 or the value returned by this function. -+ const SCEV *getAllocationElementCount(Value *P) const; -+ -+ // Same as getAllocationSize() but returns size in bytes. -+ // We consider one byte as 8 bits. -+ const SCEV *getAllocationSizeInBytes(Value *V) const; -+ -+ // Given a Pointer, determine a base pointer of known size, and an offset -+ // therefrom. -+ // When unable to determine, sets Base to NULL, and Limit/Offset to -+ // CouldNotCompute. -+ // BaseSize, and Offset are in bytes: Pointer == Base + Offset -+ void getPointerOffset(Value *Pointer, Value *&Base, const SCEV *& BaseSize, -+ const SCEV *&Offset) const; -+ -+ // Compares the 2 scalar evolution expressions according to predicate, -+ // and if it can prove that the result is always true or always false -+ // return AlwaysTrue/AlwaysFalse. Otherwise it returns Unknown. -+ enum SolverResult compareSCEV(const SCEV *A, Predicate Pred, const SCEV *B, -+ const Loop *L); -+ -+ // Determines whether the condition LHS <Pred> RHS is sufficient -+ // for the condition A <Pred> B to hold. -+ // Currently only ULT/ULE is supported. -+ // This errs on the side of returning false. -+ bool conditionSufficient(const SCEV *LHS, Predicate Pred1, const SCEV *RHS, -+ const SCEV *A, Predicate Pred2, const SCEV *B, -+ const Loop *L); -+ -+ // Determines whether Offset is known to be always in [0, Limit) bounds. -+ // This errs on the side of returning Unknown. -+ enum SolverResult checkLimits(const SCEV *Offset, const SCEV *Limit, -+ BasicBlock *BB); -+ -+ virtual bool runOnFunction(Function &F); -+ virtual void getAnalysisUsage(AnalysisUsage &AU) const; -+ void print(raw_ostream &OS, const Module* = 0) const; -+ Value *computeAllocationCountValue(Value *P, const Type *&Ty) const; -+ private: -+ Function *FF; -+ TargetData *TD; -+ ScalarEvolution *SE; -+ LoopInfo *LI; -+ DominatorTree *DT; -+ -+ Function *callocFunc; -+ Function *reallocFunc; -+ PredIteratorCache predCache; -+ -+ SmallPtrSet<const SCEV*, 1> analyzing; -+ -+ enum SolverResult isLoopGuardedBy(const Loop *L, Predicate Pred, -+ const SCEV *A, const SCEV *B) const; -+ static bool isMonotonic(const SCEV *S); -+ bool scevPositive(const SCEV *A, const Loop *L, bool strict=true) const; -+ bool conditionSufficient(Value *Cond, bool negated, -+ const SCEV *A, Predicate Pred, const SCEV *B); -+ Value *getConditionToReach(BasicBlock *A, -+ DomTreeNodeBase<BasicBlock> *B, -+ bool &negated); -+ Value *getConditionToReach(BasicBlock *A, -+ BasicBlock *B, -+ bool &negated); -+ const SCEV *computeAllocationCount(Value *P, const Type *&Ty) const; -+ const SCEV *computeAllocationCountForType(Value *P, const Type *Ty) const; -+ }; -+} -+#endif -+ diff --git a/security/clamav/files/patch-unit_tests-check_common_sh b/security/clamav/files/patch-unit_tests-check_common_sh deleted file mode 100644 index 6bc88a25792c..000000000000 --- a/security/clamav/files/patch-unit_tests-check_common_sh +++ /dev/null @@ -1,24 +0,0 @@ -$RANDOM is a bashism, it has been replaced with portable code. - -Also, the randomly generated port is checked to make sure it's not already -in use. - ---- unit_tests/check_common.sh.orig 2011-05-13 12:25:31.000000000 +0100 -+++ unit_tests/check_common.sh 2011-06-28 19:12:00.683905036 +0100 -@@ -58,9 +58,13 @@ - aa15bcf478d165efd2065190eb473bcb:544:ClamAV-Test-File - EOF - port=331$1 -- if test "x$RANDOM" != "x"; then -- port=1`expr 100 + \( $RANDOM % 899 \)`$1 -- fi -+ tries=0 -+ while nc -z localhost $port 2>/dev/null -+ do rand=` ( echo $$ ; time ps 2>&1 ; date ) | cksum | cut -f1 -d" " ` -+ port=1`expr 100 + \( $rand % 899 \)`$1 -+ [ $tries -gt 100 ] && echo Giving up, too many ports open && exit 1 -+ tries=`expr $tries + 1` -+ done - cat <<EOF >test-clamd.conf - LogFile `pwd`/clamd-test.log - LogFileMaxSize 0 |