[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:27:34 UTC 2010


The following commit has been merged in the debian/unstable branch:
commit dcaa40382628cb07358e31caf78d43a8033e337b
Author: Török Edvin <edwin at clamav.net>
Date:   Tue Mar 30 10:42:46 2010 +0300

    Fix use-of-uninit memory on zeroinitializer.

diff --git a/libclamav/bytecode.c b/libclamav/bytecode.c
index eed37e7..4a04a24 100644
--- a/libclamav/bytecode.c
+++ b/libclamav/bytecode.c
@@ -811,6 +811,13 @@ static void readConstant(struct cli_bc *bc, unsigned i, unsigned comp,
 			 unsigned len, char *ok)
 {
     unsigned j=0;
+    if (*ok && buffer[*offset] == 0x40 &&
+	buffer [*offset+1] == 0x60) {
+	/* zero initializer */
+	memset(bc->globals[i], 0, sizeof(*bc->globals[0])*comp);
+	(*offset)+=2;
+	return;
+    }
     while (*ok && buffer[*offset] != 0x60) {
 	if (j >= comp) {
 	    cli_errmsg("bytecode: constant has too many subcomponents, expected %u\n", comp);
@@ -821,8 +828,8 @@ static void readConstant(struct cli_bc *bc, unsigned i, unsigned comp,
 	bc->globals[i][j++] = readNumber(buffer, offset, len, ok);
     }
     if (*ok && j != comp) {
-	cli_dbgmsg("bytecode: constant has too few subcomponents: %u < %u\n", j, comp);
-/*	*ok = 0; */
+	cli_errmsg("bytecode: constant has too few subcomponents: %u < %u\n", j, comp);
+	*ok = 0;
     }
     (*offset)++;
 }

-- 
Debian repository for ClamAV



More information about the Pkg-clamav-commits mailing list