Use the overloaded upx_adler32() function.
committer: mfx <mfx> 980851465 +0000
This commit is contained in:
+6
-6
@@ -28,6 +28,7 @@
|
|||||||
|
|
||||||
#include "conf.h"
|
#include "conf.h"
|
||||||
#include "filter.h"
|
#include "filter.h"
|
||||||
|
#include "file.h"
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
@@ -119,13 +120,12 @@ bool Filter::filter(upx_byte *buf_, unsigned buf_len_)
|
|||||||
throwInternalError("filter-2");
|
throwInternalError("filter-2");
|
||||||
|
|
||||||
// save checksum
|
// save checksum
|
||||||
|
this->adler = 0;
|
||||||
if (clevel != 1)
|
if (clevel != 1)
|
||||||
{
|
this->adler = upx_adler32(this->buf, this->buf_len);
|
||||||
this->adler = upx_adler32(0,NULL,0);
|
|
||||||
this->adler = upx_adler32(this->adler, this->buf, this->buf_len);
|
|
||||||
}
|
|
||||||
|
|
||||||
//printf("filter: %02x %p %d\n", this->id, this->buf, this->buf_len);
|
//printf("filter: %02x %p %d\n", this->id, this->buf, this->buf_len);
|
||||||
|
//OutputFile::dump("filter.dat", buf, buf_len);
|
||||||
int r = (*fe->do_filter)(this);
|
int r = (*fe->do_filter)(this);
|
||||||
//printf("filter: %02x %d\n", fe->id, r);
|
//printf("filter: %02x %d\n", fe->id, r);
|
||||||
if (r > 0)
|
if (r > 0)
|
||||||
@@ -157,12 +157,12 @@ void Filter::unfilter(upx_byte *buf_, unsigned buf_len_, bool verify_checksum)
|
|||||||
//printf("unfilter: %02x %d\n", fe->id, r);
|
//printf("unfilter: %02x %d\n", fe->id, r);
|
||||||
if (r != 0)
|
if (r != 0)
|
||||||
throwInternalError("unfilter-3");
|
throwInternalError("unfilter-3");
|
||||||
|
//OutputFile::dump("unfilter.dat", buf, buf_len);
|
||||||
|
|
||||||
// verify checksum
|
// verify checksum
|
||||||
if (verify_checksum && clevel != 1)
|
if (verify_checksum && clevel != 1)
|
||||||
{
|
{
|
||||||
unsigned a = upx_adler32(0,NULL,0);
|
if (this->adler != upx_adler32(this->buf, this->buf_len))
|
||||||
if (this->adler != upx_adler32(a, this->buf, this->buf_len))
|
|
||||||
throwInternalError("unfilter-4");
|
throwInternalError("unfilter-4");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user