git-svn: trunk@3687
Tomasz Kojm authored on 2008/03/03 20:14:58... | ... |
@@ -1,3 +1,7 @@ |
1 |
+Mon Mar 3 11:19:25 CET 2008 (tk) |
|
2 |
+--------------------------------- |
|
3 |
+ * libclamav/pdf.c: fix handling of md5 digests (bb#866) |
|
4 |
+ |
|
1 | 5 |
Thu Feb 28 19:36:55 CET 2008 (tk) |
2 | 6 |
--------------------------------- |
3 | 7 |
* clamscan/manager.c: honour --unrar when libclamunrar is not compiled in |
... | ... |
@@ -477,18 +477,23 @@ cli_pdf(const char *dir, int desc, cli_ctx *ctx) |
477 | 477 |
cli_dbgmsg("cli_pdf: extracted file %u to %s\n", files++, fullname); |
478 | 478 |
|
479 | 479 |
lseek(fout, 0, SEEK_SET); |
480 |
- md5digest = cli_md5digest(fout); |
|
480 |
+ if((md5digest = cli_md5digest(fout))) { |
|
481 |
+ unsigned int i; |
|
482 |
+ char md5str[33]; |
|
481 | 483 |
|
482 |
- if(tableFind(md5table, md5digest) >= 0) { |
|
483 |
- cli_dbgmsg("cli_pdf: not scanning duplicate embedded file '%s'\n", fullname); |
|
484 |
+ for(i = 0; i < 16; i++) |
|
485 |
+ sprintf(md5str + 2*i, "%02x", md5digest[i]); |
|
486 |
+ md5str[32] = 0; |
|
484 | 487 |
free(md5digest); |
485 |
- close(fout); |
|
486 |
- unlink(fullname); |
|
487 |
- continue; |
|
488 |
- } else |
|
489 |
- tableInsert(md5table, md5digest, 1); |
|
490 | 488 |
|
491 |
- free(md5digest); |
|
489 |
+ if(tableFind(md5table, md5str) >= 0) { |
|
490 |
+ cli_dbgmsg("cli_pdf: not scanning duplicate embedded file '%s'\n", fullname); |
|
491 |
+ close(fout); |
|
492 |
+ unlink(fullname); |
|
493 |
+ continue; |
|
494 |
+ } else |
|
495 |
+ tableInsert(md5table, md5str, 1); |
|
496 |
+ } |
|
492 | 497 |
|
493 | 498 |
lseek(fout, 0, SEEK_SET); |
494 | 499 |
rc = cli_magic_scandesc(fout, ctx); |