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

Török Edvin edwin at clamav.net
Sun Apr 4 01:22:03 UTC 2010


The following commit has been merged in the debian/unstable branch:
commit df5c921d3a76e4b52254f9d5d95d384655536202
Author: Török Edvin <edwin at clamav.net>
Date:   Sat Mar 6 15:54:14 2010 +0200

    READ1,8,16,32,64->READN

diff --git a/libclamav/bytecode_vm.c b/libclamav/bytecode_vm.c
index 0a04352..056bf1d 100644
--- a/libclamav/bytecode_vm.c
+++ b/libclamav/bytecode_vm.c
@@ -256,24 +256,19 @@ static always_inline struct stack_entry *pop_stack(struct stack *stack,
     TRACE_W(x, p, PSIZE*8);\
     *(void**)&values[p] = x
 
-#define READ1(x, p) CHECK_GT(func->numBytes, p);\
-    x = (*(uint8_t*)&values[p])&1;\
-    TRACE_R(x)
-#define READ8(x, p) CHECK_GT(func->numBytes, p);\
-    x = *(uint8_t*)&values[p];\
-    TRACE_R(x)
-#define READ16(x, p) CHECK_GT(func->numBytes, p+1);\
-    CHECK_EQ((p)&1, 0);\
-    x = *(uint16_t*)&values[p];\
-    TRACE_R(x)
-#define READ32(x, p) CHECK_GT(func->numBytes, p+3);\
-    CHECK_EQ((p)&3, 0);\
-    x = *(uint32_t*)&values[p];\
-    TRACE_R(x)
-#define READ64(x, p) CHECK_GT(func->numBytes, p+7);\
-    CHECK_EQ((p)&7, 0);\
-    x = *(uint64_t*)&values[p];\
+#define uint_type(n) uint##n##_t
+#define READN(x, n, p)\
+    CHECK_GT(func->numBytes, p+(n/8)-1);\
+    x = *(uint_type(n)*)&values[p];\
     TRACE_R(x)
+
+#define READ1(x, p) READN(x, 8, p);\
+    x = x&1
+#define READ8(x, p) READN(x, 8, p)
+#define READ16(x, p) READN(x, 16, p)
+#define READ32(x, p) READN(x, 32, p)
+#define READ64(x, p) READN(x, 64, p)
+
 #define PSIZE sizeof(void*)
 #define READP(x, p) CHECK_GT(func->numBytes, p+PSIZE-1);\
     CHECK_EQ((p)&(PSIZE-1), 0);\

-- 
Debian repository for ClamAV



More information about the Pkg-clamav-commits mailing list