git-svn: trunk@2885
Trog authored on 2007/03/01 22:21:29... | ... |
@@ -1,3 +1,7 @@ |
1 |
+Thu Mar 1 11:24:40 GMT 2007 (trog) |
|
2 |
+----------------------------------- |
|
3 |
+ * libclamav/unrar/unrar.c, unrarvm.c: better fix for bb#350 |
|
4 |
+ |
|
1 | 5 |
Thu Mar 1 11:43:07 CET 2007 (tk) |
2 | 6 |
--------------------------------- |
3 | 7 |
* libclamav/unrar/unrar.c: skip all files inside multi-volume solid archives |
... | ... |
@@ -1501,6 +1501,7 @@ int cli_unrar_open(int fd, const char *dirname, rar_state_t* state) |
1501 | 1501 |
unpack_data->dest_unp_size = comment_header->unpack_size; |
1502 | 1502 |
unpack_data->pack_size = comment_header->head_size - SIZEOF_COMMHEAD; |
1503 | 1503 |
retval = rar_unpack(fd, comment_header->unpack_ver, FALSE, unpack_data); |
1504 |
+ unpack_free_data(unpack_data); |
|
1504 | 1505 |
} |
1505 | 1506 |
close(ofd); |
1506 | 1507 |
} |
... | ... |
@@ -139,7 +139,7 @@ void rarvm_set_value(int byte_mode, unsigned int *addr, unsigned int value) |
139 | 139 |
|
140 | 140 |
uint32_t crc_tab[256]; |
141 | 141 |
|
142 |
-static void init_crc() |
|
142 |
+static void rar_crc_init() |
|
143 | 143 |
{ |
144 | 144 |
int i, j; |
145 | 145 |
unsigned int c; |
... | ... |
@@ -190,11 +190,8 @@ uint32_t rar_crc(uint32_t start_crc, void *addr, uint32_t size) |
190 | 190 |
|
191 | 191 |
int rarvm_init(rarvm_data_t *rarvm_data) |
192 | 192 |
{ |
193 |
- if(rarvm_data->mem) { |
|
194 |
- free(rarvm_data->mem);/* prevent leaks */ |
|
195 |
- } |
|
196 | 193 |
rarvm_data->mem = (uint8_t *) cli_malloc(RARVM_MEMSIZE+4); |
197 |
- init_crc(); |
|
194 |
+ rar_crc_init(); |
|
198 | 195 |
if (!rarvm_data->mem) { |
199 | 196 |
return FALSE; |
200 | 197 |
} |