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

aCaB acab at clamav.net
Sun Apr 4 00:59:30 UTC 2010


The following commit has been merged in the debian/unstable branch:
commit 03d44bbfdd4947d2bdcba2c10046da315a232743
Author: aCaB <acab at clamav.net>
Date:   Wed Aug 5 22:49:22 2009 +0200

    fix upx/lzma

diff --git a/libclamav/lzma_iface.c b/libclamav/lzma_iface.c
index d7ccbca..ee7b1a6 100644
--- a/libclamav/lzma_iface.c
+++ b/libclamav/lzma_iface.c
@@ -124,15 +124,3 @@ int cli_LzmaDecode(struct CLI_LZMA *L) {
 	return LZMA_STREAM_END;
     return LZMA_RESULT_OK;
 }
-
-
-int cli_LzmaInitUPX(struct CLI_LZMA *L, uint32_t dsz) {
-    unsigned char fake_hdr[5];
-    unsigned char *next_in = L->next_in;
-    SizeT avail_in = L->avail_in;
-    cli_writeint32(fake_hdr + 1, dsz);
-    *fake_hdr = 9 /* lc */ + 9* ( 5* 2 /* pb */ + 0 /* lp */);
-    L->next_in = fake_hdr;
-    L->avail_in = 5;
-    return cli_LzmaInit(L, dsz);
-}
diff --git a/libclamav/lzma_iface.h b/libclamav/lzma_iface.h
index 9784329..7de55b0 100644
--- a/libclamav/lzma_iface.h
+++ b/libclamav/lzma_iface.h
@@ -52,7 +52,6 @@ struct stream_state {
 int cli_LzmaInit(struct CLI_LZMA *, uint64_t);
 void cli_LzmaShutdown(struct CLI_LZMA *);
 int cli_LzmaDecode(struct CLI_LZMA *);
-int cli_LzmaInitUPX(struct CLI_LZMA *, uint32_t);
 
 #define LZMA_STREAM_END 2
 #define LZMA_RESULT_OK 0
diff --git a/libclamav/upx.c b/libclamav/upx.c
index 02ea5d7..066ad7c 100644
--- a/libclamav/upx.c
+++ b/libclamav/upx.c
@@ -524,15 +524,20 @@ int upx_inflate2e(char *src, uint32_t ssize, char *dst, uint32_t *dsize, uint32_
 
 int upx_inflatelzma(char *src, uint32_t ssize, char *dst, uint32_t *dsize, uint32_t upx0, uint32_t upx1, uint32_t ep) {
   struct CLI_LZMA l;
-  struct stream_state s;
   uint32_t magic[]={0xb16,0xb1e,0};
+  unsigned char fake_lzmahdr[5];
 
   memset(&l, 0, sizeof(l));
-  cli_LzmaInitUPX(&l, *dsize); /* FIXMELZMA: check return value */
-  s.avail_in = ssize;
-  s.avail_out = *dsize;
-  s.next_in = (unsigned char*)src+2;
-  s.next_out = (unsigned char*)dst;
+  cli_writeint32(fake_lzmahdr + 1, *dsize);
+  *fake_lzmahdr = 3 /* lc */ + 9* ( 5* 2 /* pb */ + 0 /* lp */);
+  l.next_in = fake_lzmahdr;
+  l.avail_in = 5;
+  if(cli_LzmaInit(&l, *dsize) != LZMA_RESULT_OK)
+      return 0;
+  l.avail_in = ssize;
+  l.avail_out = *dsize;
+  l.next_in = (unsigned char*)src+2;
+  l.next_out = (unsigned char*)dst;
 
   if(cli_LzmaDecode(&l)==LZMA_RESULT_DATA_ERROR) {
 /*     __asm__ __volatile__("int3"); */

-- 
Debian repository for ClamAV



More information about the Pkg-clamav-commits mailing list