git-svn-id: file:///var/lib/svn/clamav-devel/trunk/clamav-devel@1197 77e5149b-7576-45b1-b177-96237e5ba77b
Tomasz Kojm authored on 2004/12/19 11:03:06... | ... |
@@ -187,10 +187,15 @@ zzip_file_open(ZZIP_DIR * dir, zzip_char_t* name, int o_mode) |
187 | 187 |
switch (hdr->d_compr) |
188 | 188 |
{ |
189 | 189 |
case 0: /* store */ |
190 |
+ case 1: /* shrink */ |
|
191 |
+ case 6: /* implode */ |
|
190 | 192 |
case 8: /* inflate */ |
193 |
+ case 9: /* deflate */ |
|
191 | 194 |
break; |
192 | 195 |
default: |
193 |
- { err = ZZIP_UNSUPP_COMPR; goto error; } |
|
196 |
+ cli_dbgmsg("ZzipLib: Unsupported compression mode (%d)\n", hdr->d_compr); |
|
197 |
+ err = ZZIP_UNSUPP_COMPR; |
|
198 |
+ goto error; |
|
194 | 199 |
} |
195 | 200 |
|
196 | 201 |
if (dir->cache.fp) |
... | ... |
@@ -238,8 +243,13 @@ zzip_file_open(ZZIP_DIR * dir, zzip_char_t* name, int o_mode) |
238 | 238 |
dataoff = dir->io->read(dir->fd, (void*)p, sizeof(*p)); |
239 | 239 |
if (dataoff < (zzip_ssize_t)sizeof(*p)) |
240 | 240 |
{ err = ZZIP_DIR_READ; goto error; } |
241 |
- if (! ZZIP_FILE_HEADER_CHECKMAGIC(p)) /* PK\3\4 */ |
|
242 |
- { err = ZZIP_CORRUPTED; goto error; } |
|
241 |
+ |
|
242 |
+ /* TODO: Improve header check for old archives |
|
243 |
+ if (! ZZIP_FILE_HEADER_CHECKMAGIC(p)) |
|
244 |
+ { |
|
245 |
+ err = ZZIP_CORRUPTED; goto error; |
|
246 |
+ } |
|
247 |
+ */ |
|
243 | 248 |
|
244 | 249 |
dataoff = ZZIP_GET16(p->z_namlen) + ZZIP_GET16(p->z_extras); |
245 | 250 |
|
... | ... |
@@ -265,7 +275,7 @@ zzip_file_open(ZZIP_DIR * dir, zzip_char_t* name, int o_mode) |
265 | 265 |
dir->errcode = ZZIP_ENOENT; zzip_errno(ZZIP_ENOENT); |
266 | 266 |
return NULL; |
267 | 267 |
error: |
268 |
- if (fp) zzip_file_close(fp); |
|
268 |
+if (fp) zzip_file_close(fp); |
|
269 | 269 |
dir->errcode = err; zzip_errno(err); |
270 | 270 |
return NULL; |
271 | 271 |
} |