[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