[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:16:02 UTC 2010


The following commit has been merged in the debian/unstable branch:
commit 2d45ef06168fd3a6ba6700027efc9cc0654151fd
Author: Török Edvin <edwin at clamav.net>
Date:   Wed Jan 20 20:04:01 2010 +0200

    Support for malloc in bytecode. Fix crash with mismatched api/flevel versions.

diff --git a/libclamav/bytecode.c b/libclamav/bytecode.c
index 602bfc0..690f758 100644
--- a/libclamav/bytecode.c
+++ b/libclamav/bytecode.c
@@ -64,6 +64,7 @@ struct cli_bc_ctx *cli_bytecode_context_alloc(void)
     ctx->directory = "";
     ctx->line = 0;
     ctx->col = 0;
+    ctx->mpool = NULL;
     return ctx;
 }
 
@@ -104,6 +105,14 @@ static int cli_bytecode_context_reset(struct cli_bc_ctx *ctx)
 	ctx->tempfile = NULL;
 	ctx->outfd = -1;
     }
+#if USE_MPOOL
+    if (ctx->mpool) {
+	mpool_destroy(ctx->mpool);
+	ctx->mpool = NULL;
+    }
+#else
+    //TODO: implement for no-mmap case too
+#endif
     return CL_SUCCESS;
 }
 
@@ -1222,6 +1231,7 @@ int cli_bytecode_load(struct cli_bc *bc, FILE *f, struct cli_dbio *dbio)
     enum parse_state state;
     int rc;
 
+    memset(bc, 0, sizeof(*bc));
     if (!f && !dbio) {
 	cli_errmsg("Unable to load bytecode (null file)\n");
 	return CL_ENULLARG;
diff --git a/libclamav/bytecode_api.c b/libclamav/bytecode_api.c
index 175dee0..03aae93 100644
--- a/libclamav/bytecode_api.c
+++ b/libclamav/bytecode_api.c
@@ -52,6 +52,11 @@ uint32_t cli_bcapi_test1(struct cli_bc_ctx *ctx, uint32_t a, uint32_t b)
     return (a==0xf00dbeef && b==0xbeeff00d) ? 0x12345678 : 0x55;
 }
 
+uint32_t cli_bcapi_test2(struct cli_bc_ctx *ctx, uint32_t a)
+{
+    return a == 0xf00d ? 0xd00f : 0x5555;
+}
+
 int32_t cli_bcapi_read(struct cli_bc_ctx* ctx, uint8_t *data, int32_t size)
 {
     if (!ctx->fmap)
@@ -87,7 +92,7 @@ uint32_t cli_bcapi_debug_print_str(struct cli_bc_ctx *ctx, const uint8_t *str, u
     return 0;
 }
 
-uint32_t cli_bcapi_debug_print_uint(struct cli_bc_ctx *ctx, uint32_t a, uint32_t b)
+uint32_t cli_bcapi_debug_print_uint(struct cli_bc_ctx *ctx, uint32_t a)
 {
     cli_dbgmsg("bytecode debug: %u\n", a);
     return 0;
@@ -254,7 +259,7 @@ uint32_t cli_bcapi_trace_ptr(struct cli_bc_ctx *ctx, const const uint8_t* ptr, u
     return 0;
 }
 
-uint32_t cli_bcapi_pe_rawaddr(struct cli_bc_ctx *ctx, uint32_t rva, uint32_t dummy)
+uint32_t cli_bcapi_pe_rawaddr(struct cli_bc_ctx *ctx, uint32_t rva)
 {
   uint32_t ret;
   int err = 0;
@@ -313,7 +318,7 @@ int32_t cli_bcapi_file_find(struct cli_bc_ctx *ctx, const uint8_t* data, uint32_
     return -1;
 }
 
-int32_t cli_bcapi_file_byteat(struct cli_bc_ctx *ctx, uint32_t off, uint32_t dummy)
+int32_t cli_bcapi_file_byteat(struct cli_bc_ctx *ctx, uint32_t off)
 {
     unsigned char c;
     if (!ctx->fmap)
@@ -322,3 +327,22 @@ int32_t cli_bcapi_file_byteat(struct cli_bc_ctx *ctx, uint32_t off, uint32_t dum
 	return -1;
     return c;
 }
+
+uint8_t* cli_bcapi_malloc(struct cli_bc_ctx *ctx, uint32_t size)
+{
+#if USE_MPOOL
+    if (!ctx->mpool) {
+	ctx->mpool = mpool_create();
+	if (!ctx->mpool) {
+	    cli_dbgmsg("bytecode: mpool_create failed!\n");
+	    return NULL;
+	}
+    }
+    return mpool_malloc(ctx->mpool, size);
+#else
+    /* TODO: implement using a list of pointers we allocated! */
+    cli_errmsg("cli_bcapi_malloc not implemented for systems without mmap yet!\n");
+    return NULL;
+#endif
+}
+
diff --git a/libclamav/bytecode_api.h b/libclamav/bytecode_api.h
index 9142253..d5192a6 100644
--- a/libclamav/bytecode_api.h
+++ b/libclamav/bytecode_api.h
@@ -141,10 +141,9 @@ uint32_t debug_print_str(const uint8_t *str, uint32_t len);
  * Prints a number as a debug message.
  *
  * @param[in] a number to print
- * @param b unused
  * @return 0
  */
-uint32_t debug_print_uint(uint32_t a, uint32_t b);
+uint32_t debug_print_uint(uint32_t a);
 
 /**
  * Disassembles starting from current file position, the specified amount of
@@ -176,7 +175,7 @@ uint32_t trace_ptr(const uint8_t* ptr, uint32_t dummy);
   * @return absolute file offset mapped to the \p rva,
   * or PE_INVALID_RVA if the \p rva is invalid.
   */
-uint32_t pe_rawaddr(uint32_t rva, uint32_t dummy);
+uint32_t pe_rawaddr(uint32_t rva);
 
 /** Looks for the specified sequence of bytes in the current file.
   * @param[in] data the sequence of bytes to look for
@@ -188,7 +187,15 @@ int32_t file_find(const uint8_t* data, uint32_t len);
   * @param offset file offset
   * @return byte at offset \p off in the current file, or -1 if offset is
   * invalid */
-int32_t file_byteat(uint32_t offset, uint32_t dummy);
+int32_t file_byteat(uint32_t offset);
+
+/** Allocates memory. Currently this memory is freed automatically on exit
+  from the bytecode, and there is no way to free it sooner.
+  @param size amount of memory to allocate in bytes
+  @return pointer to allocated memory */
+void* malloc(uint32_t size);
+
+uint32_t test2(uint32_t a);
 
 #endif
 #endif
diff --git a/libclamav/bytecode_api_decl.c b/libclamav/bytecode_api_decl.c
index d084a32..27c3df2 100644
--- a/libclamav/bytecode_api_decl.c
+++ b/libclamav/bytecode_api_decl.c
@@ -40,7 +40,7 @@ int32_t cli_bcapi_write(struct cli_bc_ctx *ctx, uint8_t*, int32_t);
 int32_t cli_bcapi_seek(struct cli_bc_ctx *ctx, int32_t, uint32_t);
 uint32_t cli_bcapi_setvirusname(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
 uint32_t cli_bcapi_debug_print_str(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
-uint32_t cli_bcapi_debug_print_uint(struct cli_bc_ctx *ctx, uint32_t, uint32_t);
+uint32_t cli_bcapi_debug_print_uint(struct cli_bc_ctx *ctx, uint32_t);
 uint32_t cli_bcapi_disasm_x86(struct cli_bc_ctx *ctx, struct DISASM_RESULT*, uint32_t);
 uint32_t cli_bcapi_trace_directory(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
 uint32_t cli_bcapi_trace_scope(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
@@ -48,9 +48,11 @@ uint32_t cli_bcapi_trace_source(struct cli_bc_ctx *ctx, const const uint8_t*, ui
 uint32_t cli_bcapi_trace_op(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
 uint32_t cli_bcapi_trace_value(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
 uint32_t cli_bcapi_trace_ptr(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
-uint32_t cli_bcapi_pe_rawaddr(struct cli_bc_ctx *ctx, uint32_t, uint32_t);
+uint32_t cli_bcapi_pe_rawaddr(struct cli_bc_ctx *ctx, uint32_t);
 int32_t cli_bcapi_file_find(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
-int32_t cli_bcapi_file_byteat(struct cli_bc_ctx *ctx, uint32_t, uint32_t);
+int32_t cli_bcapi_file_byteat(struct cli_bc_ctx *ctx, uint32_t);
+uint8_t* cli_bcapi_malloc(struct cli_bc_ctx *ctx, uint32_t);
+uint32_t cli_bcapi_test2(struct cli_bc_ctx *ctx, uint32_t);
 
 const struct cli_apiglobal cli_globals[] = {
 /* Bytecode globals BEGIN */
@@ -83,17 +85,19 @@ static uint16_t cli_tmp12[]={82};
 static uint16_t cli_tmp13[]={32, 32, 32, 32, 32, 32, 32, 32, 32};
 static uint16_t cli_tmp14[]={32};
 static uint16_t cli_tmp15[]={32};
-static uint16_t cli_tmp16[]={32, 32, 32};
-static uint16_t cli_tmp17[]={32, 65, 32};
-static uint16_t cli_tmp18[]={32, 88, 32};
-static uint16_t cli_tmp19[]={89};
-static uint16_t cli_tmp20[]={16, 8, 8, 8, 91, 90};
-static uint16_t cli_tmp21[]={8};
-static uint16_t cli_tmp22[]={92};
-static uint16_t cli_tmp23[]={8};
-static uint16_t cli_tmp24[]={32, 94, 32};
-static uint16_t cli_tmp25[]={95};
-static uint16_t cli_tmp26[]={94};
+static uint16_t cli_tmp16[]={32, 32};
+static uint16_t cli_tmp17[]={65, 32};
+static uint16_t cli_tmp18[]={32, 65, 32};
+static uint16_t cli_tmp19[]={32, 89, 32};
+static uint16_t cli_tmp20[]={90};
+static uint16_t cli_tmp21[]={16, 8, 8, 8, 92, 91};
+static uint16_t cli_tmp22[]={8};
+static uint16_t cli_tmp23[]={93};
+static uint16_t cli_tmp24[]={8};
+static uint16_t cli_tmp25[]={32, 32, 32};
+static uint16_t cli_tmp26[]={32, 96, 32};
+static uint16_t cli_tmp27[]={97};
+static uint16_t cli_tmp28[]={96};
 
 const struct cli_bc_type cli_apicall_types[]={
 	{DStructType, cli_tmp0, 11, 0, 0},
@@ -112,48 +116,49 @@ const struct cli_bc_type cli_apicall_types[]={
 	{DStructType, cli_tmp13, 9, 0, 0},
 	{DArrayType, cli_tmp14, 1, 0, 0},
 	{DArrayType, cli_tmp15, 64, 0, 0},
-	{DFunctionType, cli_tmp16, 3, 0, 0},
-	{DFunctionType, cli_tmp17, 3, 0, 0},
+	{DFunctionType, cli_tmp16, 2, 0, 0},
+	{DFunctionType, cli_tmp17, 2, 0, 0},
 	{DFunctionType, cli_tmp18, 3, 0, 0},
-	{DPointerType, cli_tmp19, 1, 0, 0},
-	{DStructType, cli_tmp20, 6, 0, 0},
-	{DArrayType, cli_tmp21, 29, 0, 0},
-	{DArrayType, cli_tmp22, 3, 0, 0},
-	{DArrayType, cli_tmp23, 10, 0, 0},
-	{DFunctionType, cli_tmp24, 3, 0, 0},
-	{DPointerType, cli_tmp25, 1, 0, 0},
-	{DStructType, cli_tmp26, 1, 0, 0}
+	{DFunctionType, cli_tmp19, 3, 0, 0},
+	{DPointerType, cli_tmp20, 1, 0, 0},
+	{DStructType, cli_tmp21, 6, 0, 0},
+	{DArrayType, cli_tmp22, 29, 0, 0},
+	{DArrayType, cli_tmp23, 3, 0, 0},
+	{DArrayType, cli_tmp24, 10, 0, 0},
+	{DFunctionType, cli_tmp25, 3, 0, 0},
+	{DFunctionType, cli_tmp26, 3, 0, 0},
+	{DPointerType, cli_tmp27, 1, 0, 0},
+	{DStructType, cli_tmp28, 1, 0, 0}
 };
 
 const unsigned cli_apicall_maxtypes=sizeof(cli_apicall_types)/sizeof(cli_apicall_types[0]);
 const struct cli_apicall cli_apicalls[]={
 /* Bytecode APIcalls BEGIN */
-	{"test0", 24, 0, 1},
-	{"test1", 16, 0, 0},
-	{"read", 17, 1, 1},
-	{"write", 17, 2, 1},
-	{"seek", 16, 1, 0},
-	{"setvirusname", 17, 3, 1},
-	{"debug_print_str", 17, 4, 1},
-	{"debug_print_uint", 16, 2, 0},
-	{"disasm_x86", 18, 5, 1},
-	{"trace_directory", 17, 6, 1},
-	{"trace_scope", 17, 7, 1},
-	{"trace_source", 17, 8, 1},
-	{"trace_op", 17, 9, 1},
-	{"trace_value", 17, 10, 1},
-	{"trace_ptr", 17, 11, 1},
-	{"pe_rawaddr", 16, 3, 0},
-	{"file_find", 17, 12, 1},
-	{"file_byteat", 16, 4, 0}
+	{"test0", 26, 0, 1},
+	{"test1", 25, 0, 0},
+	{"read", 18, 1, 1},
+	{"write", 18, 2, 1},
+	{"seek", 25, 1, 0},
+	{"setvirusname", 18, 3, 1},
+	{"debug_print_str", 18, 4, 1},
+	{"debug_print_uint", 16, 0, 2},
+	{"disasm_x86", 19, 5, 1},
+	{"trace_directory", 18, 6, 1},
+	{"trace_scope", 18, 7, 1},
+	{"trace_source", 18, 8, 1},
+	{"trace_op", 18, 9, 1},
+	{"trace_value", 18, 10, 1},
+	{"trace_ptr", 18, 11, 1},
+	{"pe_rawaddr", 16, 1, 2},
+	{"file_find", 18, 12, 1},
+	{"file_byteat", 16, 2, 2},
+	{"malloc", 17, 0, 3},
+	{"test2", 16, 3, 2}
 /* Bytecode APIcalls END */
 };
 const cli_apicall_int2 cli_apicalls0[] = {
 	(cli_apicall_int2)cli_bcapi_test1,
-	(cli_apicall_int2)cli_bcapi_seek,
-	(cli_apicall_int2)cli_bcapi_debug_print_uint,
-	(cli_apicall_int2)cli_bcapi_pe_rawaddr,
-	(cli_apicall_int2)cli_bcapi_file_byteat
+	(cli_apicall_int2)cli_bcapi_seek
 };
 const cli_apicall_pointer cli_apicalls1[] = {
 	(cli_apicall_pointer)cli_bcapi_test0,
@@ -170,4 +175,13 @@ const cli_apicall_pointer cli_apicalls1[] = {
 	(cli_apicall_pointer)cli_bcapi_trace_ptr,
 	(cli_apicall_pointer)cli_bcapi_file_find
 };
+const cli_apicall_int1 cli_apicalls2[] = {
+	(cli_apicall_int1)cli_bcapi_debug_print_uint,
+	(cli_apicall_int1)cli_bcapi_pe_rawaddr,
+	(cli_apicall_int1)cli_bcapi_file_byteat,
+	(cli_apicall_int1)cli_bcapi_test2
+};
+const cli_apicall_malloclike cli_apicalls3[] = {
+	(cli_apicall_malloclike)cli_bcapi_malloc
+};
 const unsigned cli_apicall_maxapi = sizeof(cli_apicalls)/sizeof(cli_apicalls[0]);
diff --git a/libclamav/bytecode_api_impl.h b/libclamav/bytecode_api_impl.h
index 96baed5..9385905 100644
--- a/libclamav/bytecode_api_impl.h
+++ b/libclamav/bytecode_api_impl.h
@@ -37,7 +37,7 @@ int32_t cli_bcapi_write(struct cli_bc_ctx *ctx, uint8_t*, int32_t);
 int32_t cli_bcapi_seek(struct cli_bc_ctx *ctx, int32_t, uint32_t);
 uint32_t cli_bcapi_setvirusname(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
 uint32_t cli_bcapi_debug_print_str(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
-uint32_t cli_bcapi_debug_print_uint(struct cli_bc_ctx *ctx, uint32_t, uint32_t);
+uint32_t cli_bcapi_debug_print_uint(struct cli_bc_ctx *ctx, uint32_t);
 uint32_t cli_bcapi_disasm_x86(struct cli_bc_ctx *ctx, struct DISASM_RESULT*, uint32_t);
 uint32_t cli_bcapi_trace_directory(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
 uint32_t cli_bcapi_trace_scope(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
@@ -45,8 +45,10 @@ uint32_t cli_bcapi_trace_source(struct cli_bc_ctx *ctx, const const uint8_t*, ui
 uint32_t cli_bcapi_trace_op(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
 uint32_t cli_bcapi_trace_value(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
 uint32_t cli_bcapi_trace_ptr(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
-uint32_t cli_bcapi_pe_rawaddr(struct cli_bc_ctx *ctx, uint32_t, uint32_t);
+uint32_t cli_bcapi_pe_rawaddr(struct cli_bc_ctx *ctx, uint32_t);
 int32_t cli_bcapi_file_find(struct cli_bc_ctx *ctx, const const uint8_t*, uint32_t);
-int32_t cli_bcapi_file_byteat(struct cli_bc_ctx *ctx, uint32_t, uint32_t);
+int32_t cli_bcapi_file_byteat(struct cli_bc_ctx *ctx, uint32_t);
+uint8_t* cli_bcapi_malloc(struct cli_bc_ctx *ctx, uint32_t);
+uint32_t cli_bcapi_test2(struct cli_bc_ctx *ctx, uint32_t);
 
 #endif
diff --git a/libclamav/bytecode_priv.h b/libclamav/bytecode_priv.h
index 75a9dcf..8cda9af 100644
--- a/libclamav/bytecode_priv.h
+++ b/libclamav/bytecode_priv.h
@@ -28,6 +28,7 @@
 #include "execs.h"
 #include "bytecode_hooks.h"
 #include "fmap.h"
+#include "mpool.h"
 
 typedef uint32_t operand_t;
 typedef uint16_t bbid_t;
@@ -144,6 +145,7 @@ struct cli_bc_ctx {
     uint32_t scopeid;
     unsigned line;
     unsigned col;
+    mpool_t *mpool;
 };
 struct cli_all_bc;
 int cli_vm_execute(const struct cli_bc *bc, struct cli_bc_ctx *ctx, const struct cli_bc_func *func, const struct cli_bc_inst *inst);
diff --git a/libclamav/bytecode_vm.c b/libclamav/bytecode_vm.c
index aeb2626..e6d5551 100644
--- a/libclamav/bytecode_vm.c
+++ b/libclamav/bytecode_vm.c
@@ -589,6 +589,22 @@ int cli_vm_execute(const struct cli_bc *bc, struct cli_bc_ctx *ctx, const struct
 			res =  cli_apicalls1[api->idx](p, u);
 			break;*/
 		    }
+		    case 2: {
+			int32_t a;
+			READ32(a, inst->u.ops.ops[0]);
+			res = cli_apicalls2[api->idx](ctx, a);
+			break;
+		    }
+		    case 3: {
+			cli_errmsg("bytecode: type 3 apicalls not yet implemented!\n");
+			stop = CL_EBYTECODE;
+		/*	void *p;
+			uint32_t u;
+			p = ...;
+			u = READ32(v, inst->u.ops.ops[1]);
+			res =  cli_apicalls1[api->idx](p, u);
+			break;*/
+			    }
 		}
 		WRITE32(inst->dest, res);
 		break;
diff --git a/libclamav/c++/bytecode2llvm.cpp b/libclamav/c++/bytecode2llvm.cpp
index ff315f8..aa6df15 100644
--- a/libclamav/c++/bytecode2llvm.cpp
+++ b/libclamav/c++/bytecode2llvm.cpp
@@ -1304,6 +1304,12 @@ int cli_bytecode_prepare_jit(struct cli_all_bc *bcs)
 		case 1:
 		    dest = (void*)(intptr_t)cli_apicalls1[api->idx];
 		    break;
+		case 2:
+		    dest = (void*)(intptr_t)cli_apicalls2[api->idx];
+		    break;
+		case 3:
+		    dest = (void*)(intptr_t)cli_apicalls3[api->idx];
+		    break;
 		default:
 		    llvm_unreachable("invalid api type");
 	    }
diff --git a/libclamav/clambc.h b/libclamav/clambc.h
index cfafc25..0e5ef72 100644
--- a/libclamav/clambc.h
+++ b/libclamav/clambc.h
@@ -28,7 +28,7 @@ struct bytecode_metadata {
   char *targetExclude;
 };
 
-#define BC_FUNC_LEVEL 4
+#define BC_FUNC_LEVEL 5
 #define BC_HEADER "ClamBC"
 
 enum bc_opcode {
diff --git a/libclamav/type_desc.h b/libclamav/type_desc.h
index f320d58..6614b1b 100644
--- a/libclamav/type_desc.h
+++ b/libclamav/type_desc.h
@@ -43,6 +43,8 @@ struct cli_bc_type {
 
 typedef uint32_t (*cli_apicall_int2)(struct cli_bc_ctx *, uint32_t, uint32_t);
 typedef uint32_t (*cli_apicall_pointer)(struct cli_bc_ctx *, void*, uint32_t);
+typedef uint32_t (*cli_apicall_int1)(struct cli_bc_ctx *, uint32_t);
+typedef void* (*cli_apicall_malloclike)(struct cli_bc_ctx *, uint32_t);
 
 struct cli_apicall {
     const char *name;
@@ -69,6 +71,8 @@ extern const struct cli_apiglobal cli_globals[];
 extern const struct cli_apicall cli_apicalls[];
 extern const cli_apicall_int2 cli_apicalls0[];
 extern const cli_apicall_pointer cli_apicalls1[];
+extern const cli_apicall_int1 cli_apicalls2[];
+extern const cli_apicall_malloclike cli_apicalls3[];
 extern const unsigned cli_apicall_maxapi;
 extern const unsigned cli_apicall_maxglobal;
 
diff --git a/unit_tests/input/apicalls.cbc b/unit_tests/input/apicalls.cbc
index 09fe754..f41bb16 100644
--- a/unit_tests/input/apicalls.cbc
+++ b/unit_tests/input/apicalls.cbc
@@ -1,4 +1,4 @@
-ClamBCad`|``````|`agafp`clamcoincidencejb:82
+ClamBCae`|``````|`agafp`clamcoincidencejb:82
 
 Tedaaa`aacb`bb`bb`b
 Eabaaabbfd|afdgefcgdgac``
diff --git a/unit_tests/input/apicalls2.cbc b/unit_tests/input/apicalls2.cbc
index d847034..bedb0ca 100644
--- a/unit_tests/input/apicalls2.cbc
+++ b/unit_tests/input/apicalls2.cbc
@@ -1,11 +1,14 @@
-ClamBCad`|``````|`akafp`clamcoincidencejb:83
+ClamBCae`|``````|`amafp`clamcoincidencejb:92
 
-Tedcaabfdebedebfdaaa`aacb`bbfdb`baacb`bb`bb`b
-Eababaabid|afdgefcgdg`c``abbjd|afdgefcgdgac``
+Tedcaabfdebedebfdaaa`aabbadb`baabb`bb`baacb`bbfdb`baacb`bb`bb`b
+Ebdaadbcabid|agmfaflflfofcf``bdabjd|afdgefcgdgbc``aabkd|afdgefcgdg`c``abbld|afdgefcgdgac``
 G`aa`@`
-A`b`bLahbedabgd```b`b`aa`b`b`aa`b`b`Fajac
-Bbgdaadbbfd`@d``fb`aab`bacabbabHonnkm``odHm``oonnkdaaadeab`bacHhgfedcbadTaaadaaab
-Bb`baeabbaa`Honnkmjnmdaaafeab`baeHhgfedcbadb`bagoaafDm``odDmjnmdTcab`bag
+A`b`bLalbedabgd```b`b`aa`b`b`aa`b`b`aa`bad`aa`b`b`Fbaaaf
+Bbgdaadbbfd`@d``fb`aab`bacabbabHonnkm``odHm``oonnkdaaadeab`bacHhgfedcbadTaaadaaae
+Bb`baeabbaa`Honnkmjnmdaaafeab`baeHhgfedcbadTaaafabae
+Bb`bagababdaDm``odaaaheab`bagDo``mdTaaahacae
+BbadaiababcaAadaaajeabadai@`Taaajaead
+Bb`bakabbaaai at dTcab`bDm``od
 BTcab`bDmjnmdE
 Aab`bLabah`aa`b`b`Facaa
 Baaaaeaah`Bgaab`baboaaaDm``odDmjnmdTcab`babE
diff --git a/unit_tests/input/arith.cbc b/unit_tests/input/arith.cbc
index 709ea0a..ed84690 100644
--- a/unit_tests/input/arith.cbc
+++ b/unit_tests/input/arith.cbc
@@ -1,4 +1,4 @@
-ClamBCad`|``````|`afbbep`clamcoincidencejb:418
+ClamBCae`|``````|`afbbep`clamcoincidencejb:418
 
 Tedaaa`
 E``
diff --git a/unit_tests/input/div0.cbc b/unit_tests/input/div0.cbc
index 349f364..fe129f2 100644
--- a/unit_tests/input/div0.cbc
+++ b/unit_tests/input/div0.cbc
@@ -1,4 +1,4 @@
-ClamBCad`|``````|`afabp`clamcoincidencejb:23
+ClamBCae`|``````|`afabp`clamcoincidencejb:23
 
 Tedaaa`
 E``
diff --git a/unit_tests/input/lsig.cbc b/unit_tests/input/lsig.cbc
index 696551c..b749411 100644
--- a/unit_tests/input/lsig.cbc
+++ b/unit_tests/input/lsig.cbc
@@ -1,11 +1,11 @@
-ClamBCad`|``c``a```|`bjaabp`clamcoincidencejb:326
+ClamBCae`|``````|`bjaabp`clamcoincidencejb:318
 Trojan.Foo.{A,B};Target:1;(((0|1|2)=42,2)|(3=10));EP+0:aabb;ffff;aaccee;f00d;dead
 Tedebieebheebgeebfeebeeebdeebbeebaeebadebcdaaa`aacb`bbadb`bdb`db`bcajbadbcebadbcebadbcebadbcebadbcecaab`bdagahdaeahdajahdabbaddabahdakah
 Eafaaafb`e|amcgefdgfgifbgegcgnfafmfef``
-Gd```hbia`@`bieBdeBbgBofBjfBafBnfBnbBfdBofBof@`bheBad@`bheBbd@`bge at Ab@Ac`b`aAa`b`aC``a`bfeBedB`eBkbB`cBjcBafBafBbfBbf@`beeBffBffBffBff@`beeBffB`cB`cBdf@`bdeBafBafBcfBcfBefBef@`beeBdfBefBafBdf@`bbe at Ag@@AhAa at AiAc@AjAb at AkAd`bad at Ab`bad at Ac`bad at Ag`bad at Ah`bad at Ai`bad at Aj`bad at Ak`bcdAdD```h`bcdAcD```h`bcdAbD```h`bcdAaD```h`bcd at D```h`
+Gd```hbha`@`bieBdeBbgBofBjfBafBnfBnbBfdBofBof@`bheBad@`bheBbd@`bge at Ab@Ac`b`aAa`bfeBedB`eBkbB`cBjcBafBafBbfBbf@`beeBffBffBffBff@`beeBffB`cB`cBdf@`bdeBafBafBcfBcfBefBef@`beeBdfBefBafBdf@`bbe at Af@@AgAa at AhAc@AiAb at AjAd`bad at Ab`bad at Ac`bad at Af`bad at Ag`bad at Ah`bad at Ai`bad at Aj`bcdAdD```h`bcdAcD```h`bcdAbD```h`bcdAaD```h`bcd at D```h`
 A`b`bLaeb`b`aa`aa`bad`b`b`Fahac
-Bb`b`gbBda`aaaagab`b`AadTaaaaaaab
-Baaabeab`b`AbdbadacoaabAm`An`b`badabbafac at dTcab`b at d
+Bb`b`gbBca`aaaagab`b`AadTaaaaaaab
+Baaabeab`b`AbdbadacoaabAl`Am`b`badabbafac at dTcab`b at d
 BTcab`b at dE
 A`aaLbcab`b`b`b`b`b`b`b`b`b`aa`aa`aa`aa`b`b`b`b`b`b`b`b`b`b`aa`aa`b`b`aa`aa`Fbdaaa
-Bb`b`gbBha`b`baagbBga`b`babgbBfa`b`baca`aa`b`bada`acabaaaeeab`badBjbdaaaffab`bab at daaagfab`baa at daaahfab`b`@db`bai`aafb`baj`aagb`bak`aahb`bala`ajakb`bama`alaiaaaneab`bamAbdaaaok`anaeb`bb`agbBea`aabaaeab`bb`aAjdaabbal`aobaaTcaaabbaE
+Bb`b`gbBga`b`baagbBfa`b`babgbBea`b`baca`aa`b`bada`acabaaaeeab`badBjbdaaaffab`bab at daaagfab`baa at daaahfab`b`@db`bai`aafb`baj`aagb`bak`aahb`bala`ajakb`bama`alaiaaaneab`bamAbdaaaok`anaeb`bb`agbBda`aabaaeab`bb`aAjdaabbal`aobaaTcaaabbaE
diff --git a/unit_tests/input/retmagic.cbc b/unit_tests/input/retmagic.cbc
index c3f02fa..d3074ad 100644
--- a/unit_tests/input/retmagic.cbc
+++ b/unit_tests/input/retmagic.cbc
@@ -1,4 +1,4 @@
-ClamBCad`|``````|`afaap`clamcoincidencejb:20
+ClamBCae`|``````|`afaap`clamcoincidencejb:20
 
 Tedaaa`
 E``

-- 
Debian repository for ClamAV



More information about the Pkg-clamav-commits mailing list