git-svn: trunk@3760
Tomasz Kojm authored on 2008/04/07 18:56:56... | ... |
@@ -1,3 +1,7 @@ |
1 |
+Mon Apr 7 11:15:49 CEST 2008 (tk) |
|
2 |
+---------------------------------- |
|
3 |
+ * libclamav/chmunpack.c,cab.c: downgrade some error messages (bb#911, bb#798) |
|
4 |
+ |
|
1 | 5 |
Sun Apr 6 12:33:25 CEST 2008 (acab) |
2 | 6 |
------------------------------------ |
3 | 7 |
* libclamav/pe.c: make petite softfail as it's really reading unaligned data |
... | ... |
@@ -122,7 +122,8 @@ static char *cab_readstr(int fd, int *ret) |
122 | 122 |
} |
123 | 123 |
|
124 | 124 |
if(lseek(fd, (off_t) (pos + i + 1), SEEK_SET) == -1) { |
125 |
- *ret = CL_EIO; |
|
125 |
+ /* *ret = CL_EIO; */ |
|
126 |
+ *ret = CL_EFORMAT; /* most likely a corrupted file */ |
|
126 | 127 |
return NULL; |
127 | 128 |
} |
128 | 129 |
|
... | ... |
@@ -209,7 +210,8 @@ int cab_open(int fd, off_t offset, struct cab_archive *cab) |
209 | 209 |
|
210 | 210 |
if(cli_readn(fd, &hdr, sizeof(hdr)) != sizeof(hdr)) { |
211 | 211 |
cli_dbgmsg("cab_open: Can't read cabinet header\n"); |
212 |
- return CL_EIO; |
|
212 |
+ /* return CL_EIO; */ |
|
213 |
+ return CL_EFORMAT; /* most likely a corrupted file */ |
|
213 | 214 |
} |
214 | 215 |
|
215 | 216 |
if(EC32(hdr.signature) != 0x4643534d) { |
... | ... |
@@ -268,7 +270,8 @@ int cab_open(int fd, off_t offset, struct cab_archive *cab) |
268 | 268 |
if(cab->flags & 0x0004) { |
269 | 269 |
if(cli_readn(fd, &hdr_opt, sizeof(hdr_opt)) != sizeof(hdr_opt)) { |
270 | 270 |
cli_dbgmsg("cab_open: Can't read file header (fake cab?)\n"); |
271 |
- return CL_EIO; |
|
271 |
+ /* return CL_EIO; */ |
|
272 |
+ return CL_EFORMAT; /* most likely a corrupted file */ |
|
272 | 273 |
} |
273 | 274 |
|
274 | 275 |
cab->reshdr = EC16(hdr_opt.cbCFHeader); |
... | ... |
@@ -278,7 +281,8 @@ int cab_open(int fd, off_t offset, struct cab_archive *cab) |
278 | 278 |
if(cab->reshdr) { |
279 | 279 |
if(lseek(fd, cab->reshdr, SEEK_CUR) == -1) { |
280 | 280 |
cli_dbgmsg("cab_open: Can't lseek to %u (fake cab?)\n", cab->reshdr); |
281 |
- return CL_EIO; |
|
281 |
+ /* return CL_EIO; */ |
|
282 |
+ return CL_EFORMAT; /* most likely a corrupted file */ |
|
282 | 283 |
} |
283 | 284 |
} |
284 | 285 |
} |
... | ... |
@@ -336,14 +340,16 @@ int cab_open(int fd, off_t offset, struct cab_archive *cab) |
336 | 336 |
if(cli_readn(fd, &folder_hdr, sizeof(folder_hdr)) != sizeof(folder_hdr)) { |
337 | 337 |
cli_errmsg("cab_open: Can't read header for folder %u\n", i); |
338 | 338 |
cab_free(cab); |
339 |
- return CL_EIO; |
|
339 |
+ /* return CL_EIO; */ |
|
340 |
+ return CL_EFORMAT; /* most likely a corrupted file */ |
|
340 | 341 |
} |
341 | 342 |
|
342 | 343 |
if(resfold) { |
343 | 344 |
if(lseek(fd, resfold, SEEK_CUR) == -1) { |
344 | 345 |
cli_errmsg("cab_open: Can't lseek to %u (resfold)\n", (unsigned int) resfold); |
345 | 346 |
cab_free(cab); |
346 |
- return CL_EIO; |
|
347 |
+ /* return CL_EIO; */ |
|
348 |
+ return CL_EFORMAT; /* most likely a corrupted file */ |
|
347 | 349 |
} |
348 | 350 |
} |
349 | 351 |
|
... | ... |
@@ -392,7 +398,8 @@ int cab_open(int fd, off_t offset, struct cab_archive *cab) |
392 | 392 |
if(cli_readn(fd, &file_hdr, sizeof(file_hdr)) != sizeof(file_hdr)) { |
393 | 393 |
cli_errmsg("cab_open: Can't read file %u header\n", i); |
394 | 394 |
cab_free(cab); |
395 |
- return CL_EIO; |
|
395 |
+ /* return CL_EIO; */ |
|
396 |
+ return CL_EFORMAT; /* most likely a corrupted file */ |
|
396 | 397 |
} |
397 | 398 |
|
398 | 399 |
file = (struct cab_file *) cli_calloc(1, sizeof(struct cab_file)); |
... | ... |
@@ -483,12 +490,14 @@ static int cab_read_block(int fd, struct cab_state *state, uint16_t resdata) |
483 | 483 |
|
484 | 484 |
if(cli_readn(fd, &block_hdr, sizeof(block_hdr)) != sizeof(block_hdr)) { |
485 | 485 |
cli_dbgmsg("cab_read_block: Can't read block header\n"); |
486 |
- return CL_EIO; |
|
486 |
+ /* return CL_EIO; */ |
|
487 |
+ return CL_EFORMAT; /* most likely a corrupted file */ |
|
487 | 488 |
} |
488 | 489 |
|
489 | 490 |
if(resdata && lseek(fd, (off_t) resdata, SEEK_CUR) == -1) { |
490 | 491 |
cli_dbgmsg("cab_read_block: lseek failed\n"); |
491 |
- return CL_EIO; |
|
492 |
+ /* return CL_EIO; */ |
|
493 |
+ return CL_EFORMAT; /* most likely a corrupted file */ |
|
492 | 494 |
} |
493 | 495 |
|
494 | 496 |
state->blklen = EC16(block_hdr.cbData); |
... | ... |
@@ -506,7 +515,8 @@ static int cab_read_block(int fd, struct cab_state *state, uint16_t resdata) |
506 | 506 |
|
507 | 507 |
if(cli_readn(fd, state->block, state->blklen) != state->blklen) { |
508 | 508 |
cli_dbgmsg("cab_read_block: Can't read block data\n"); |
509 |
- return CL_EIO; |
|
509 |
+ /* return CL_EIO; */ |
|
510 |
+ return CL_EFORMAT; /* most likely a corrupted file */ |
|
510 | 511 |
} |
511 | 512 |
|
512 | 513 |
state->pt = state->end = state->block; |
... | ... |
@@ -825,7 +825,8 @@ int cli_chm_extract_file(int fd, char *dirname, chm_metadata_t *metadata) |
825 | 825 |
if (chm_copy_file_data(metadata->ufd, metadata->ofd, metadata->file_length) != metadata->file_length) { |
826 | 826 |
cli_dbgmsg("failed to copy %lu bytes\n", (unsigned long int) metadata->file_length); |
827 | 827 |
close(metadata->ofd); |
828 |
- return CL_EIO; |
|
828 |
+ /* return CL_EIO; */ |
|
829 |
+ return CL_EFORMAT; /* most likely a corrupted file */ |
|
829 | 830 |
} |
830 | 831 |
|
831 | 832 |
return CL_SUCCESS; |