| ... | ... |
@@ -1,3 +1,13 @@ |
| 1 |
+Thu Nov 6 15:24:34 EET 2008 (edwin) |
|
| 2 |
+------------------------------------ |
|
| 3 |
+ * Makefile.am, clamd/session.c, clamd/thrmgr.c, libclamav/dlp.c, |
|
| 4 |
+ libclamav/htmlnorm.c, libclamav/jsparse/js-norm.c, |
|
| 5 |
+ libclamav/mpool.c, libclamav/mpool.h, libclamav/pe.c, |
|
| 6 |
+ libclamav/phishcheck.c, libclamav/readdb.c, libclamav/upack.c, |
|
| 7 |
+ libclamav/upx.c, libclamunrar/unrar.c, libclamunrar/unrarvm.c, |
|
| 8 |
+ libclamunrar_iface/unrar_iface.c: fix compiler warnings, more to |
|
| 9 |
+ come (bb #273) |
|
| 10 |
+ |
|
| 1 | 11 |
Thu Nov 6 12:29:26 EET 2008 (edwin) |
| 2 | 12 |
------------------------------------ |
| 3 | 13 |
* contrib/clamdtop/clamdtop.c: reconnect if connection is broken use |
| ... | ... |
@@ -29,7 +29,7 @@ pkgconfig_DATA = libclamav.pc |
| 29 | 29 |
distuninstallcheck_listfiles = find . -type f ! -name clamd.conf ! -name freshclam.conf ! -name daily.cvd ! -name main.cvd -print |
| 30 | 30 |
DISTCLEANFILES = target.h |
| 31 | 31 |
if DISTCHECK_ENABLE_FLAGS |
| 32 |
-DISTCHECK_CONFIGURE_FLAGS=--enable-milter --disable-clamav CFLAGS="-Wno-pointer-sign -Wno-error=attributes -Werror-implicit-function-declaration -Werror -Wextra -Wall -Wbad-function-cast -Wcast-align -Wendif-labels -Wfloat-equal -Wformat=2 -Wmissing-declarations -Wmissing-prototypes -Wno-error=missing-prototypes -Wnested-externs -Wno-error=nested-externs -Wpointer-arith -Wstrict-prototypes -Wno-error=strict-prototypes -Wno-switch -Wno-switch-enum -Wundef -Wwrite-strings -Wstrict-overflow=1 -Winit-self -Wmissing-include-dirs -Wstrict-aliasing -Wdeclaration-after-statement -Waggregate-return -Wmissing-format-attribute -Wno-error=missing-format-attribute -Wpadded -Wno-error=type-limits -Wno-error=unused-value -Wno-error=unused-variable -Wcast-qual -Wno-error=cast-qual -Wno-error=sign-compare -Wshadow -Wno-error=shadow -Wno-error=uninitialized -fdiagnostics-show-option -Wno-unused-parameter -Wpacked -Wno-error=packed -Wno-error=unreachable-code -Winvalid-pch -Wno-error=invalid-pch -O2 -D_FORTIFY_SOURCE=2 -fstack-protector-all -Wstack-protector -Wno-error=padded" |
|
| 32 |
+DISTCHECK_CONFIGURE_FLAGS=--enable-milter --disable-clamav CFLAGS="-Wno-pointer-sign -Wno-error=attributes -Werror-implicit-function-declaration -Werror -Wextra -Wall -Wbad-function-cast -Wcast-align -Wendif-labels -Wfloat-equal -Wformat=2 -Wmissing-declarations -Wmissing-prototypes -Wno-error=missing-prototypes -Wnested-externs -Wno-error=nested-externs -Wpointer-arith -Wstrict-prototypes -Wno-error=strict-prototypes -Wno-switch -Wno-switch-enum -Wundef -Wwrite-strings -Wstrict-overflow=1 -Winit-self -Wmissing-include-dirs -Wstrict-aliasing -Wdeclaration-after-statement -Waggregate-return -Wmissing-format-attribute -Wno-error=missing-format-attribute -Wpadded -Wno-error=type-limits -Wno-error=unused-value -Wno-error=unused-variable -Wcast-qual -Wno-error=cast-qual -Wno-error=sign-compare -Wshadow -Wno-error=shadow -Wno-error=uninitialized -fdiagnostics-show-option -Wno-unused-parameter -Wpacked -Wno-error=packed -Wno-error=unreachable-code -Winvalid-pch -Wno-error=invalid-pch -O2 -D_FORTIFY_SOURCE=2 -fstack-protector-all -Wstack-protector -Wno-error=padded -Wno-error=aggregate-return" |
|
| 33 | 33 |
else |
| 34 | 34 |
DISTCHECK_CONFIGURE_FLAGS=--enable-milter --disable-clamav |
| 35 | 35 |
endif |
| ... | ... |
@@ -65,6 +65,7 @@ |
| 65 | 65 |
#include "scanner.h" |
| 66 | 66 |
#include "server.h" |
| 67 | 67 |
#include "session.h" |
| 68 |
+#include "thrmgr.h" |
|
| 68 | 69 |
|
| 69 | 70 |
#ifdef HAVE_FD_PASSING |
| 70 | 71 |
static int recvfd_and_scan(int desc, const struct cl_engine *engine, const struct cl_limits *limits, unsigned int options, const struct cfgstruct *copt) |
| ... | ... |
@@ -155,8 +155,8 @@ static void remove_frompools(threadpool_t *t) |
| 155 | 155 |
int thrmgr_printstats(int f) |
| 156 | 156 |
{
|
| 157 | 157 |
struct threadpool_list *l; |
| 158 |
- size_t cnt; |
|
| 159 |
- size_t pool_used = 0, pool_total = 0, pool_cnt = 0, seen_cnt = 0, error_flag = 0; |
|
| 158 |
+ unsigned cnt, pool_cnt = 0; |
|
| 159 |
+ size_t pool_used = 0, pool_total = 0, seen_cnt = 0, error_flag = 0; |
|
| 160 | 160 |
float mem_heap = 0, mem_mmap = 0, mem_used = 0, mem_free = 0, mem_releasable = 0; |
| 161 | 161 |
const struct cl_engine **seen = NULL; |
| 162 | 162 |
|
| ... | ... |
@@ -169,7 +169,7 @@ int thrmgr_printstats(int f) |
| 169 | 169 |
work_item_t *q; |
| 170 | 170 |
struct timeval tv_now; |
| 171 | 171 |
unsigned long umin=~0UL, umax=0, usum=0; |
| 172 |
- size_t invalids=0, cnt=0; |
|
| 172 |
+ unsigned invalids=0, cnt=0; |
|
| 173 | 173 |
struct task_desc *task; |
| 174 | 174 |
|
| 175 | 175 |
if(!pool) {
|
| ... | ... |
@@ -190,6 +190,9 @@ int thrmgr_printstats(int f) |
| 190 | 190 |
case POOL_EXIT: |
| 191 | 191 |
state = "EXIT"; |
| 192 | 192 |
break; |
| 193 |
+ default: |
|
| 194 |
+ state = "??"; |
|
| 195 |
+ break; |
|
| 193 | 196 |
} |
| 194 | 197 |
mdprintf(f, "STATE: %s %s\n", state, l->nxt ? "" : "PRIMARY"); |
| 195 | 198 |
mdprintf(f, "THREADS: live %u idle %u max %u idle-timeout %u\n" |
| ... | ... |
@@ -220,7 +223,7 @@ int thrmgr_printstats(int f) |
| 220 | 220 |
} |
| 221 | 221 |
if(cnt + invalids != pool->queue->item_count) |
| 222 | 222 |
mdprintf(f," (ERROR: %u != %u)", cnt + invalids, |
| 223 |
- pool->queue->item_count); |
|
| 223 |
+ (unsigned)pool->queue->item_count); |
|
| 224 | 224 |
mdprintf(f, "\n"); |
| 225 | 225 |
for(task = pool->tasks; task; task = task->nxt) {
|
| 226 | 226 |
long delta; |
| ... | ... |
@@ -298,7 +298,7 @@ int dlp_is_valid_ssn(const unsigned char *buffer, int length, int format) |
| 298 | 298 |
if((length > minlength) && isdigit(buffer[minlength])) |
| 299 | 299 |
return 0; |
| 300 | 300 |
|
| 301 |
- strncpy(numbuf, buffer, minlength); |
|
| 301 |
+ strncpy(numbuf, (const char*)buffer, minlength); |
|
| 302 | 302 |
numbuf[minlength] = 0; |
| 303 | 303 |
|
| 304 | 304 |
/* sscanf parses and (basically) validates the string for us */ |
| ... | ... |
@@ -326,8 +326,8 @@ static char *html_tag_arg_value(tag_arguments_t *tags, const char *tag) |
| 326 | 326 |
int i; |
| 327 | 327 |
|
| 328 | 328 |
for (i=0; i < tags->count; i++) {
|
| 329 |
- if (strcmp(tags->tag[i], tag) == 0) {
|
|
| 330 |
- return tags->value[i]; |
|
| 329 |
+ if (strcmp((const char*)tags->tag[i], tag) == 0) {
|
|
| 330 |
+ return (char*)tags->value[i]; |
|
| 331 | 331 |
} |
| 332 | 332 |
} |
| 333 | 333 |
return NULL; |
| ... | ... |
@@ -338,16 +338,16 @@ static void html_tag_arg_set(tag_arguments_t *tags, const char *tag, const char |
| 338 | 338 |
int i; |
| 339 | 339 |
|
| 340 | 340 |
for (i=0; i < tags->count; i++) {
|
| 341 |
- if (strcmp(tags->tag[i], tag) == 0) {
|
|
| 341 |
+ if (strcmp((const char*)tags->tag[i], tag) == 0) {
|
|
| 342 | 342 |
free(tags->value[i]); |
| 343 |
- tags->value[i] = cli_strdup(value); |
|
| 343 |
+ tags->value[i] = (unsigned char*)cli_strdup(value); |
|
| 344 | 344 |
return; |
| 345 | 345 |
} |
| 346 | 346 |
} |
| 347 | 347 |
return; |
| 348 | 348 |
} |
| 349 | 349 |
static void html_tag_arg_add(tag_arguments_t *tags, |
| 350 |
- const unsigned char *tag, unsigned char *value) |
|
| 350 |
+ const char *tag, char *value) |
|
| 351 | 351 |
{
|
| 352 | 352 |
int len, i; |
| 353 | 353 |
tags->count++; |
| ... | ... |
@@ -369,16 +369,16 @@ static void html_tag_arg_add(tag_arguments_t *tags, |
| 369 | 369 |
} |
| 370 | 370 |
tags->contents[tags->count-1]=NULL; |
| 371 | 371 |
} |
| 372 |
- tags->tag[tags->count-1] = cli_strdup(tag); |
|
| 372 |
+ tags->tag[tags->count-1] = (unsigned char*)cli_strdup(tag); |
|
| 373 | 373 |
if (value) {
|
| 374 | 374 |
if (*value == '"') {
|
| 375 |
- tags->value[tags->count-1] = cli_strdup(value+1); |
|
| 376 |
- len = strlen(value+1); |
|
| 375 |
+ tags->value[tags->count-1] = (unsigned char*)cli_strdup(value+1); |
|
| 376 |
+ len = strlen((const char*)value+1); |
|
| 377 | 377 |
if (len > 0) {
|
| 378 | 378 |
tags->value[tags->count-1][len-1] = '\0'; |
| 379 | 379 |
} |
| 380 | 380 |
} else {
|
| 381 |
- tags->value[tags->count-1] = cli_strdup(value); |
|
| 381 |
+ tags->value[tags->count-1] = (unsigned char*)cli_strdup(value); |
|
| 382 | 382 |
} |
| 383 | 383 |
} else {
|
| 384 | 384 |
tags->value[tags->count-1] = NULL; |
| ... | ... |
@@ -419,13 +419,13 @@ static void html_output_tag(file_buff_t *fbuff, char *tag, tag_arguments_t *tags |
| 419 | 419 |
int i, j, len; |
| 420 | 420 |
|
| 421 | 421 |
html_output_c(fbuff, '<'); |
| 422 |
- html_output_str(fbuff, tag, strlen(tag)); |
|
| 422 |
+ html_output_str(fbuff, (const unsigned char*)tag, strlen(tag)); |
|
| 423 | 423 |
for (i=0; i < tags->count; i++) {
|
| 424 | 424 |
html_output_c(fbuff, ' '); |
| 425 |
- html_output_str(fbuff, tags->tag[i], strlen(tags->tag[i])); |
|
| 425 |
+ html_output_str(fbuff, tags->tag[i], strlen((const char*)tags->tag[i])); |
|
| 426 | 426 |
if (tags->value[i]) {
|
| 427 |
- html_output_str(fbuff, "=\"", 2); |
|
| 428 |
- len = strlen(tags->value[i]); |
|
| 427 |
+ html_output_str(fbuff, (const unsigned char*)"=\"", 2); |
|
| 428 |
+ len = strlen((const char*)tags->value[i]); |
|
| 429 | 429 |
for (j=0 ; j<len ; j++) {
|
| 430 | 430 |
html_output_c(fbuff, tolower(tags->value[i][j])); |
| 431 | 431 |
} |
| ... | ... |
@@ -548,7 +548,7 @@ static void screnc_decode(unsigned char *ptr, struct screnc_state *s) |
| 548 | 548 |
} |
| 549 | 549 |
if(!s->length) {
|
| 550 | 550 |
size_t remaining; |
| 551 |
- if(strlen(ptr) >= 12) {
|
|
| 551 |
+ if(strlen((const char*)ptr) >= 12) {
|
|
| 552 | 552 |
uint32_t expected; |
| 553 | 553 |
expected = base64_chars[ptr[0]] << 2; |
| 554 | 554 |
expected += base64_chars[ptr[1]] >> 4; |
| ... | ... |
@@ -562,7 +562,7 @@ static void screnc_decode(unsigned char *ptr, struct screnc_state *s) |
| 562 | 562 |
if(s->sum != expected) {
|
| 563 | 563 |
cli_dbgmsg("screnc_decode: checksum mismatch: %u != %u\n", s->sum, expected);
|
| 564 | 564 |
} else {
|
| 565 |
- if(strncmp(ptr, "^#~@", 4) != 0) {
|
|
| 565 |
+ if(strncmp((const char*)ptr, "^#~@", 4) != 0) {
|
|
| 566 | 566 |
cli_dbgmsg("screnc_decode: terminator not found\n");
|
| 567 | 567 |
} else {
|
| 568 | 568 |
cli_dbgmsg("screnc_decode: OK\n");
|
| ... | ... |
@@ -571,15 +571,15 @@ static void screnc_decode(unsigned char *ptr, struct screnc_state *s) |
| 571 | 571 |
ptr += 4; |
| 572 | 572 |
} |
| 573 | 573 |
/* copy remaining */ |
| 574 |
- remaining = strlen(ptr) + 1; |
|
| 574 |
+ remaining = strlen((const char*)ptr) + 1; |
|
| 575 | 575 |
memmove(dst, ptr, remaining); |
| 576 | 576 |
} else {
|
| 577 | 577 |
*dst = '\0'; |
| 578 | 578 |
} |
| 579 | 579 |
} |
| 580 | 580 |
|
| 581 |
-static void js_process(struct parser_state *js_state, const char *js_begin, const char *js_end, |
|
| 582 |
- const char *line, const char *ptr, int in_script, const char *dirname) |
|
| 581 |
+static void js_process(struct parser_state *js_state, const unsigned char *js_begin, const unsigned char *js_end, |
|
| 582 |
+ const unsigned char *line, const unsigned char *ptr, int in_script, const char *dirname) |
|
| 583 | 583 |
{
|
| 584 | 584 |
if(!js_begin) |
| 585 | 585 |
js_begin = line; |
| ... | ... |
@@ -588,7 +588,7 @@ static void js_process(struct parser_state *js_state, const char *js_begin, cons |
| 588 | 588 |
if(js_end > js_begin && |
| 589 | 589 |
CLI_ISCONTAINED(line, 8192, js_begin, 1) && |
| 590 | 590 |
CLI_ISCONTAINED(line, 8192, js_end, 1)) {
|
| 591 |
- cli_js_process_buffer(js_state, js_begin, js_end - js_begin); |
|
| 591 |
+ cli_js_process_buffer(js_state, (const char*)js_begin, js_end - js_begin); |
|
| 592 | 592 |
} |
| 593 | 593 |
if(!in_script) {
|
| 594 | 594 |
/* we found a /script, normalize script now */ |
| ... | ... |
@@ -600,20 +600,20 @@ static void js_process(struct parser_state *js_state, const char *js_begin, cons |
| 600 | 600 |
|
| 601 | 601 |
static int cli_html_normalise(int fd, m_area_t *m_area, const char *dirname, tag_arguments_t *hrefs,const struct cli_dconf* dconf) |
| 602 | 602 |
{
|
| 603 |
- int fd_tmp, tag_length, tag_arg_length, binary; |
|
| 604 |
- int retval=FALSE, escape, value = 0, hex, tag_val_length=0; |
|
| 603 |
+ int fd_tmp, tag_length = 0, tag_arg_length = 0, binary; |
|
| 604 |
+ int retval=FALSE, escape=FALSE, value = 0, hex=FALSE, tag_val_length=0; |
|
| 605 | 605 |
int look_for_screnc=FALSE, in_screnc=FALSE,in_script=FALSE, text_space_written=FALSE; |
| 606 | 606 |
FILE *stream_in = NULL; |
| 607 | 607 |
html_state state=HTML_NORM, next_state=HTML_BAD_STATE, saved_next_state=HTML_BAD_STATE; |
| 608 | 608 |
char filename[1024], tag[HTML_STR_LENGTH+1], tag_arg[HTML_STR_LENGTH+1]; |
| 609 |
- char tag_val[HTML_STR_LENGTH+1], *tmp_file; |
|
| 610 |
- unsigned char *line, *ptr, *arg_value, *ptr_screnc; |
|
| 609 |
+ char tag_val[HTML_STR_LENGTH+1], *tmp_file, *arg_value; |
|
| 610 |
+ unsigned char *line, *ptr, *ptr_screnc = NULL; |
|
| 611 | 611 |
tag_arguments_t tag_args; |
| 612 |
- quoted_state quoted; |
|
| 613 |
- unsigned long length; |
|
| 612 |
+ quoted_state quoted = NOT_QUOTED; |
|
| 613 |
+ unsigned long length = 0; |
|
| 614 | 614 |
struct screnc_state screnc_state; |
| 615 | 615 |
file_buff_t *file_buff_o2, *file_buff_text; |
| 616 |
- file_buff_t *file_tmp_o1; |
|
| 616 |
+ file_buff_t *file_tmp_o1 = NULL; |
|
| 617 | 617 |
int in_ahref=0;/* index of <a> tag, whose contents we are parsing. Indexing starts from 1, 0 means outside of <a>*/ |
| 618 | 618 |
unsigned char* href_contents_begin=NULL;/*beginning of the next portion of <a> contents*/ |
| 619 | 619 |
unsigned char* ptrend=NULL;/*end of <a> contents*/ |
| ... | ... |
@@ -1067,13 +1067,13 @@ static int cli_html_normalise(int fd, m_area_t *m_area, const char *dirname, tag |
| 1067 | 1067 |
} else if (strcmp(tag, "script") == 0) {
|
| 1068 | 1068 |
arg_value = html_tag_arg_value(&tag_args, "language"); |
| 1069 | 1069 |
/* TODO: maybe we can output all tags only via html_output_tag */ |
| 1070 |
- if (arg_value && (strcasecmp(arg_value, "jscript.encode") == 0)) {
|
|
| 1070 |
+ if (arg_value && (strcasecmp((const char*)arg_value, "jscript.encode") == 0)) {
|
|
| 1071 | 1071 |
html_tag_arg_set(&tag_args, "language", "javascript"); |
| 1072 | 1072 |
state = HTML_SKIP_WS; |
| 1073 | 1073 |
next_state = HTML_JSDECODE; |
| 1074 | 1074 |
/* we already output the old tag, output the new tag now */ |
| 1075 | 1075 |
html_output_tag(file_buff_o2, tag, &tag_args); |
| 1076 |
- } else if (arg_value && (strcasecmp(arg_value, "vbscript.encode") == 0)) {
|
|
| 1076 |
+ } else if (arg_value && (strcasecmp((const char*)arg_value, "vbscript.encode") == 0)) {
|
|
| 1077 | 1077 |
html_tag_arg_set(&tag_args, "language", "vbscript"); |
| 1078 | 1078 |
state = HTML_SKIP_WS; |
| 1079 | 1079 |
next_state = HTML_JSDECODE; |
| ... | ... |
@@ -1091,8 +1091,8 @@ static int cli_html_normalise(int fd, m_area_t *m_area, const char *dirname, tag |
| 1091 | 1091 |
} |
| 1092 | 1092 |
} else if(strcmp(tag, "%@") == 0) {
|
| 1093 | 1093 |
arg_value = html_tag_arg_value(&tag_args, "language"); |
| 1094 |
- if(arg_value && (strcasecmp(arg_value,"jscript.encode") == 0|| |
|
| 1095 |
- strcasecmp(arg_value, "vbscript.encode") == 0)) {
|
|
| 1094 |
+ if(arg_value && (strcasecmp((const char*)arg_value,"jscript.encode") == 0|| |
|
| 1095 |
+ strcasecmp((const char*)arg_value, "vbscript.encode") == 0)) {
|
|
| 1096 | 1096 |
|
| 1097 | 1097 |
saved_next_state = next_state; |
| 1098 | 1098 |
next_state = state; |
| ... | ... |
@@ -1104,9 +1104,9 @@ static int cli_html_normalise(int fd, m_area_t *m_area, const char *dirname, tag |
| 1104 | 1104 |
href_contents_begin=ptr; |
| 1105 | 1105 |
if (strcmp(tag, "a") == 0) {
|
| 1106 | 1106 |
arg_value = html_tag_arg_value(&tag_args, "href"); |
| 1107 |
- if (arg_value && strlen(arg_value) > 0) {
|
|
| 1107 |
+ if (arg_value && strlen((const char*)arg_value) > 0) {
|
|
| 1108 | 1108 |
if (hrefs->scanContents) {
|
| 1109 |
- unsigned char* arg_value_title = html_tag_arg_value(&tag_args,"title"); |
|
| 1109 |
+ char* arg_value_title = html_tag_arg_value(&tag_args,"title"); |
|
| 1110 | 1110 |
/*beginning of an <a> tag*/ |
| 1111 | 1111 |
if (in_ahref) |
| 1112 | 1112 |
/*we encountered nested <a> tags, pretend previous closed*/ |
| ... | ... |
@@ -1119,8 +1119,8 @@ static int cli_html_normalise(int fd, m_area_t *m_area, const char *dirname, tag |
| 1119 | 1119 |
if (arg_value_title) {
|
| 1120 | 1120 |
/* title is a 'displayed link'*/ |
| 1121 | 1121 |
html_tag_arg_add(hrefs,"href_title",arg_value_title); |
| 1122 |
- html_tag_contents_append(&contents,arg_value, |
|
| 1123 |
- arg_value+strlen(arg_value)); |
|
| 1122 |
+ html_tag_contents_append(&contents,(const unsigned char*)arg_value, |
|
| 1123 |
+ (const unsigned char*)arg_value+strlen(arg_value)); |
|
| 1124 | 1124 |
html_tag_contents_done(hrefs, hrefs->count, &contents); |
| 1125 | 1125 |
} |
| 1126 | 1126 |
if (in_form_action) {
|
| ... | ... |
@@ -1128,7 +1128,7 @@ static int cli_html_normalise(int fd, m_area_t *m_area, const char *dirname, tag |
| 1128 | 1128 |
html_tag_arg_add(hrefs,"form",arg_value); |
| 1129 | 1129 |
contents.pos = 0; |
| 1130 | 1130 |
html_tag_contents_append(&contents, in_form_action, |
| 1131 |
- in_form_action + strlen(in_form_action)); |
|
| 1131 |
+ in_form_action + strlen((const char*)in_form_action)); |
|
| 1132 | 1132 |
html_tag_contents_done(hrefs, hrefs->count, &contents); |
| 1133 | 1133 |
} |
| 1134 | 1134 |
} |
| ... | ... |
@@ -1140,11 +1140,11 @@ static int cli_html_normalise(int fd, m_area_t *m_area, const char *dirname, tag |
| 1140 | 1140 |
} |
| 1141 | 1141 |
} |
| 1142 | 1142 |
} else if (strcmp(tag,"form") == 0 && hrefs->scanContents) {
|
| 1143 |
- const unsigned char* arg_action_value = html_tag_arg_value(&tag_args,"action"); |
|
| 1143 |
+ const char* arg_action_value = html_tag_arg_value(&tag_args,"action"); |
|
| 1144 | 1144 |
if (arg_action_value) {
|
| 1145 | 1145 |
if(in_form_action) |
| 1146 | 1146 |
free(in_form_action); |
| 1147 |
- in_form_action = cli_strdup(arg_action_value); |
|
| 1147 |
+ in_form_action = (unsigned char*)cli_strdup(arg_action_value); |
|
| 1148 | 1148 |
} |
| 1149 | 1149 |
} else if (strcmp(tag, "img") == 0) {
|
| 1150 | 1150 |
arg_value = html_tag_arg_value(&tag_args, "src"); |
| ... | ... |
@@ -1152,13 +1152,13 @@ static int cli_html_normalise(int fd, m_area_t *m_area, const char *dirname, tag |
| 1152 | 1152 |
html_tag_arg_add(hrefs, "src", arg_value); |
| 1153 | 1153 |
if(hrefs->scanContents && in_ahref) |
| 1154 | 1154 |
/* "contents" of an img tag, is the URL of its parent <a> tag */ |
| 1155 |
- hrefs->contents[hrefs->count-1] = cli_strdup(hrefs->value[in_ahref-1]); |
|
| 1155 |
+ hrefs->contents[hrefs->count-1] = (unsigned char*)cli_strdup((const char*)hrefs->value[in_ahref-1]); |
|
| 1156 | 1156 |
if (in_form_action) {
|
| 1157 | 1157 |
/* form action is the real URL, and href is the 'displayed' */ |
| 1158 | 1158 |
html_tag_arg_add(hrefs,"form",arg_value); |
| 1159 | 1159 |
contents.pos = 0; |
| 1160 | 1160 |
html_tag_contents_append(&contents, in_form_action, |
| 1161 |
- in_form_action + strlen(in_form_action)); |
|
| 1161 |
+ in_form_action + strlen((const char*)in_form_action)); |
|
| 1162 | 1162 |
html_tag_contents_done(hrefs, hrefs->count, &contents); |
| 1163 | 1163 |
} |
| 1164 | 1164 |
} |
| ... | ... |
@@ -1167,13 +1167,13 @@ static int cli_html_normalise(int fd, m_area_t *m_area, const char *dirname, tag |
| 1167 | 1167 |
html_tag_arg_add(hrefs, "dynsrc", arg_value); |
| 1168 | 1168 |
if(hrefs->scanContents && in_ahref) |
| 1169 | 1169 |
/* see above */ |
| 1170 |
- hrefs->contents[hrefs->count-1] = cli_strdup(hrefs->value[in_ahref-1]); |
|
| 1170 |
+ hrefs->contents[hrefs->count-1] = (unsigned char*)cli_strdup((const char*)hrefs->value[in_ahref-1]); |
|
| 1171 | 1171 |
if (in_form_action) {
|
| 1172 | 1172 |
/* form action is the real URL, and href is the 'displayed' */ |
| 1173 | 1173 |
html_tag_arg_add(hrefs,"form",arg_value); |
| 1174 | 1174 |
contents.pos = 0; |
| 1175 | 1175 |
html_tag_contents_append(&contents, in_form_action, |
| 1176 |
- in_form_action + strlen(in_form_action)); |
|
| 1176 |
+ in_form_action + strlen((const char*)in_form_action)); |
|
| 1177 | 1177 |
html_tag_contents_done(hrefs, hrefs->count, &contents); |
| 1178 | 1178 |
} |
| 1179 | 1179 |
} |
| ... | ... |
@@ -1183,13 +1183,13 @@ static int cli_html_normalise(int fd, m_area_t *m_area, const char *dirname, tag |
| 1183 | 1183 |
html_tag_arg_add(hrefs, "iframe", arg_value); |
| 1184 | 1184 |
if(hrefs->scanContents && in_ahref) |
| 1185 | 1185 |
/* see above */ |
| 1186 |
- hrefs->contents[hrefs->count-1] = cli_strdup(hrefs->value[in_ahref-1]); |
|
| 1186 |
+ hrefs->contents[hrefs->count-1] = (unsigned char*)cli_strdup((const char*)hrefs->value[in_ahref-1]); |
|
| 1187 | 1187 |
if (in_form_action) {
|
| 1188 | 1188 |
/* form action is the real URL, and href is the 'displayed' */ |
| 1189 | 1189 |
html_tag_arg_add(hrefs,"form",arg_value); |
| 1190 | 1190 |
contents.pos = 0; |
| 1191 | 1191 |
html_tag_contents_append(&contents, in_form_action, |
| 1192 |
- in_form_action + strlen(in_form_action)); |
|
| 1192 |
+ in_form_action + strlen((const char*)in_form_action)); |
|
| 1193 | 1193 |
html_tag_contents_done(hrefs, hrefs->count, &contents); |
| 1194 | 1194 |
} |
| 1195 | 1195 |
} |
| ... | ... |
@@ -1199,13 +1199,13 @@ static int cli_html_normalise(int fd, m_area_t *m_area, const char *dirname, tag |
| 1199 | 1199 |
html_tag_arg_add(hrefs, "area", arg_value); |
| 1200 | 1200 |
if(hrefs->scanContents && in_ahref) |
| 1201 | 1201 |
/* see above */ |
| 1202 |
- hrefs->contents[hrefs->count-1] = cli_strdup(hrefs->value[in_ahref-1]); |
|
| 1202 |
+ hrefs->contents[hrefs->count-1] = (unsigned char*)cli_strdup((const char*)hrefs->value[in_ahref-1]); |
|
| 1203 | 1203 |
if (in_form_action) {
|
| 1204 | 1204 |
/* form action is the real URL, and href is the 'displayed' */ |
| 1205 | 1205 |
html_tag_arg_add(hrefs,"form",arg_value); |
| 1206 | 1206 |
contents.pos = 0; |
| 1207 | 1207 |
html_tag_contents_append(&contents, in_form_action, |
| 1208 |
- in_form_action + strlen(in_form_action)); |
|
| 1208 |
+ in_form_action + strlen((const char*)in_form_action)); |
|
| 1209 | 1209 |
html_tag_contents_done(hrefs, hrefs->count, &contents); |
| 1210 | 1210 |
} |
| 1211 | 1211 |
} |
| ... | ... |
@@ -1215,14 +1215,14 @@ static int cli_html_normalise(int fd, m_area_t *m_area, const char *dirname, tag |
| 1215 | 1215 |
/* a/img tags for buff_text can be processed only if we're not processing hrefs */ |
| 1216 | 1216 |
arg_value = html_tag_arg_value(&tag_args, "href"); |
| 1217 | 1217 |
if(arg_value && arg_value[0]) {
|
| 1218 |
- html_output_str(file_buff_text, arg_value, strlen(arg_value)); |
|
| 1218 |
+ html_output_str(file_buff_text, (const unsigned char*)arg_value, strlen((const char*)arg_value)); |
|
| 1219 | 1219 |
html_output_c(file_buff_text, ' '); |
| 1220 | 1220 |
text_space_written = TRUE; |
| 1221 | 1221 |
} |
| 1222 | 1222 |
} else if (strcmp(tag, "img") == 0) {
|
| 1223 | 1223 |
arg_value = html_tag_arg_value(&tag_args, "src"); |
| 1224 | 1224 |
if(arg_value && arg_value[0]) {
|
| 1225 |
- html_output_str(file_buff_text, arg_value, strlen(arg_value)); |
|
| 1225 |
+ html_output_str(file_buff_text, (const unsigned char*)arg_value, strlen((const char*)arg_value)); |
|
| 1226 | 1226 |
html_output_c(file_buff_text, ' '); |
| 1227 | 1227 |
text_space_written = TRUE; |
| 1228 | 1228 |
} |
| ... | ... |
@@ -1353,7 +1353,7 @@ static int cli_html_normalise(int fd, m_area_t *m_area, const char *dirname, tag |
| 1353 | 1353 |
break; |
| 1354 | 1354 |
case HTML_LOOKFOR_SCRENC: |
| 1355 | 1355 |
look_for_screnc = TRUE; |
| 1356 |
- ptr_screnc = strstr(ptr, "#@~^"); |
|
| 1356 |
+ ptr_screnc = (unsigned char*)strstr((char*)ptr, "#@~^"); |
|
| 1357 | 1357 |
if(ptr_screnc) {
|
| 1358 | 1358 |
ptr_screnc[0] = '/'; |
| 1359 | 1359 |
ptr_screnc[1] = '/'; |
| ... | ... |
@@ -1364,7 +1364,7 @@ static int cli_html_normalise(int fd, m_area_t *m_area, const char *dirname, tag |
| 1364 | 1364 |
break; |
| 1365 | 1365 |
case HTML_JSDECODE: |
| 1366 | 1366 |
/* Check for start marker */ |
| 1367 |
- if (strncmp(ptr, "#@~^", 4) == 0) {
|
|
| 1367 |
+ if (strncmp((const char*)ptr, "#@~^", 4) == 0) {
|
|
| 1368 | 1368 |
ptr[0] = '/'; |
| 1369 | 1369 |
ptr[1] = '/'; |
| 1370 | 1370 |
ptr += 4; |
| ... | ... |
@@ -1376,7 +1376,7 @@ static int cli_html_normalise(int fd, m_area_t *m_area, const char *dirname, tag |
| 1376 | 1376 |
} |
| 1377 | 1377 |
break; |
| 1378 | 1378 |
case HTML_JSDECODE_LENGTH: |
| 1379 |
- if (strlen(ptr) < 8) {
|
|
| 1379 |
+ if (strlen((const char*)ptr) < 8) {
|
|
| 1380 | 1380 |
state = HTML_NORM; |
| 1381 | 1381 |
next_state = HTML_BAD_STATE; |
| 1382 | 1382 |
break; |
| ... | ... |
@@ -1498,15 +1498,15 @@ static int cli_html_normalise(int fd, m_area_t *m_area, const char *dirname, tag |
| 1498 | 1498 |
} |
| 1499 | 1499 |
file_tmp_o1->length = 0; |
| 1500 | 1500 |
|
| 1501 |
- html_output_str(file_tmp_o1, "From html-normalise\n", 20); |
|
| 1502 |
- html_output_str(file_tmp_o1, "Content-type: ", 14); |
|
| 1501 |
+ html_output_str(file_tmp_o1, (const unsigned char*)"From html-normalise\n", 20); |
|
| 1502 |
+ html_output_str(file_tmp_o1, (const unsigned char*)"Content-type: ", 14); |
|
| 1503 | 1503 |
if ((tag_val_length == 0) && (*tag_val == ';')) {
|
| 1504 |
- html_output_str(file_tmp_o1, "text/plain\n", 11); |
|
| 1504 |
+ html_output_str(file_tmp_o1, (const unsigned char*)"text/plain\n", 11); |
|
| 1505 | 1505 |
} |
| 1506 |
- html_output_str(file_tmp_o1, tag_val, tag_val_length); |
|
| 1506 |
+ html_output_str(file_tmp_o1, (const unsigned char*)tag_val, tag_val_length); |
|
| 1507 | 1507 |
html_output_c(file_tmp_o1, '\n'); |
| 1508 | 1508 |
if (strstr(tag_val, ";base64") != NULL) {
|
| 1509 |
- html_output_str(file_tmp_o1, "Content-transfer-encoding: base64\n", 34); |
|
| 1509 |
+ html_output_str(file_tmp_o1, (const unsigned char*)"Content-transfer-encoding: base64\n", 34); |
|
| 1510 | 1510 |
} |
| 1511 | 1511 |
html_output_c(file_tmp_o1, '\n'); |
| 1512 | 1512 |
} else {
|
| ... | ... |
@@ -1751,8 +1751,8 @@ int html_screnc_decode(int fd, const char *dirname) |
| 1751 | 1751 |
return FALSE; |
| 1752 | 1752 |
} |
| 1753 | 1753 |
|
| 1754 |
- snprintf(filename, 1024, "%s/screnc.html", dirname); |
|
| 1755 |
- ofd = open(filename, O_WRONLY|O_CREAT|O_TRUNC, S_IWUSR|S_IRUSR); |
|
| 1754 |
+ snprintf((char*)filename, 1024, "%s/screnc.html", dirname); |
|
| 1755 |
+ ofd = open((const char*)filename, O_WRONLY|O_CREAT|O_TRUNC, S_IWUSR|S_IRUSR); |
|
| 1756 | 1756 |
|
| 1757 | 1757 |
if (ofd < 0) {
|
| 1758 | 1758 |
cli_dbgmsg("open failed: %s\n", filename);
|
| ... | ... |
@@ -1761,7 +1761,7 @@ int html_screnc_decode(int fd, const char *dirname) |
| 1761 | 1761 |
} |
| 1762 | 1762 |
|
| 1763 | 1763 |
while ((line = cli_readchunk(stream_in, NULL, 8192)) != NULL) {
|
| 1764 |
- ptr = strstr(line, "#@~^"); |
|
| 1764 |
+ ptr = (unsigned char*)strstr((char*)line, "#@~^"); |
|
| 1765 | 1765 |
if (ptr) {
|
| 1766 | 1766 |
break; |
| 1767 | 1767 |
} |
| ... | ... |
@@ -1801,7 +1801,7 @@ int html_screnc_decode(int fd, const char *dirname) |
| 1801 | 1801 |
cli_writen(ofd, "<script>",strlen("<script>"));
|
| 1802 | 1802 |
while (screnc_state.length && line) {
|
| 1803 | 1803 |
screnc_decode(ptr, &screnc_state); |
| 1804 |
- cli_writen(ofd, ptr, strlen(ptr)); |
|
| 1804 |
+ cli_writen(ofd, ptr, strlen((const char*)ptr)); |
|
| 1805 | 1805 |
free(line); |
| 1806 | 1806 |
if (screnc_state.length) {
|
| 1807 | 1807 |
ptr = line = cli_readchunk(stream_in, NULL, 8192); |
| ... | ... |
@@ -866,6 +866,8 @@ void cli_js_parse_done(struct parser_state* state) |
| 866 | 866 |
case SingleQString: |
| 867 | 867 |
end = '\''; |
| 868 | 868 |
break; |
| 869 |
+ default: /* make gcc happy */ |
|
| 870 |
+ break; |
|
| 869 | 871 |
} |
| 870 | 872 |
if (end != '\0') |
| 871 | 873 |
cli_js_process_buffer(state, &end, 1); |
| ... | ... |
@@ -1557,6 +1559,8 @@ static int yylex(YYSTYPE *lvalp, yyscan_t scanner) |
| 1557 | 1557 |
} |
| 1558 | 1558 |
scanner->state = Initial; |
| 1559 | 1559 |
break; |
| 1560 |
+ default: |
|
| 1561 |
+ assert(0 && "Not reached"); |
|
| 1560 | 1562 |
} |
| 1561 | 1563 |
} |
| 1562 | 1564 |
return 0; |
| ... | ... |
@@ -571,7 +571,7 @@ char *cli_mp_strdup(mp_t *mp, const char *s) {
|
| 571 | 571 |
return alloc; |
| 572 | 572 |
} |
| 573 | 573 |
|
| 574 |
-char *cli_mp_virname(mp_t *mp, char *virname, unsigned int official) {
|
|
| 574 |
+char *cli_mp_virname(mp_t *mp, const char *virname, unsigned int official) {
|
|
| 575 | 575 |
char *newname, *pt; |
| 576 | 576 |
if(!virname) |
| 577 | 577 |
return NULL; |
| ... | ... |
@@ -34,7 +34,7 @@ void *mp_realloc(mp_t *mp, void *ptr, size_t size); |
| 34 | 34 |
void *mp_realloc2(mp_t *mp, void *ptr, size_t size); |
| 35 | 35 |
unsigned char *cli_mp_hex2str(mp_t* mp, const unsigned char *src); |
| 36 | 36 |
char *cli_mp_strdup(mp_t *mp, const char *s); |
| 37 |
-char *cli_mp_virname(mp_t *mp, char *virname, unsigned int official); |
|
| 37 |
+char *cli_mp_virname(mp_t *mp, const char *virname, unsigned int official); |
|
| 38 | 38 |
uint16_t *cli_mp_hex2ui(mp_t *mp, const char *hex); |
| 39 | 39 |
void mp_flush(mp_t *mp); |
| 40 | 40 |
int mp_getstats(const struct cl_engine *engine, size_t *used, size_t *total); |
| ... | ... |
@@ -905,7 +905,7 @@ int cli_scanpe(int desc, cli_ctx *ctx) |
| 905 | 905 |
epsize = cli_readn(desc, epbuff, 4096); |
| 906 | 906 |
|
| 907 | 907 |
CLI_UNPTEMP("DISASM",(exe_sections,0));
|
| 908 |
- disasmbuf(epbuff, epsize, ndesc); |
|
| 908 |
+ disasmbuf((unsigned char*)epbuff, epsize, ndesc); |
|
| 909 | 909 |
lseek(ndesc, 0, SEEK_SET); |
| 910 | 910 |
ret = cli_scandesc(ndesc, ctx, CL_TYPE_PE_DISASM, 1, NULL, AC_SCAN_VIR); |
| 911 | 911 |
close(ndesc); |
| ... | ... |
@@ -785,7 +785,7 @@ int phishingScan(const char* dir,cli_ctx* ctx,tag_arguments_t* hrefs) |
| 785 | 785 |
urls.always_check_flags |= CHECK_CLOAKING; |
| 786 | 786 |
} |
| 787 | 787 |
string_init_c(&urls.realLink,(char*)hrefs->value[i]); |
| 788 |
- string_init_c(&urls.displayLink, hrefs->contents[i]); |
|
| 788 |
+ string_init_c(&urls.displayLink, (char*)hrefs->contents[i]); |
|
| 789 | 789 |
string_init_c(&urls.pre_fixup.pre_displayLink, NULL); |
| 790 | 790 |
|
| 791 | 791 |
urls.realLink.refcount=-1; |
| ... | ... |
@@ -961,8 +961,8 @@ static const uint8_t URI_xpalpha_nodot[256] = {
|
| 961 | 961 |
|
| 962 | 962 |
static inline int validate_uri_xalphas_nodot(const char *start, const char *end) |
| 963 | 963 |
{
|
| 964 |
- const unsigned char *p = start; |
|
| 965 |
- for(p=start;p < (const unsigned char*)end; p++) {
|
|
| 964 |
+ const unsigned char *p; |
|
| 965 |
+ for(p=(const unsigned char*)start;p < (const unsigned char*)end; p++) {
|
|
| 966 | 966 |
if(!URI_xalpha_nodot[*p]) |
| 967 | 967 |
return 0; |
| 968 | 968 |
} |
| ... | ... |
@@ -971,8 +971,8 @@ static inline int validate_uri_xalphas_nodot(const char *start, const char *end) |
| 971 | 971 |
|
| 972 | 972 |
static inline int validate_uri_xpalphas_nodot(const char *start, const char *end) |
| 973 | 973 |
{
|
| 974 |
- const unsigned char *p = start; |
|
| 975 |
- for(p=start;p < (const unsigned char*)end; p++) {
|
|
| 974 |
+ const unsigned char *p; |
|
| 975 |
+ for(p=(const unsigned char*)start;p < (const unsigned char*)end; p++) {
|
|
| 976 | 976 |
if(!URI_xpalpha_nodot[*p]) |
| 977 | 977 |
return 0; |
| 978 | 978 |
} |
| ... | ... |
@@ -983,7 +983,7 @@ static inline int validate_uri_xpalphas_nodot(const char *start, const char *end |
| 983 | 983 |
|
| 984 | 984 |
static inline int validate_uri_ialpha(const char *start, const char *end) |
| 985 | 985 |
{
|
| 986 |
- const unsigned char *p = start; |
|
| 986 |
+ const unsigned char *p = (const unsigned char*) start; |
|
| 987 | 987 |
if(start >= end || !URI_alpha[*p]) |
| 988 | 988 |
return 0; |
| 989 | 989 |
return validate_uri_xalphas_nodot(start + 1, end); |
| ... | ... |
@@ -994,7 +994,6 @@ static inline int validate_uri_ialpha(const char *start, const char *end) |
| 994 | 994 |
*/ |
| 995 | 995 |
static int isURL(const struct phishcheck* pchk,const char* URL, int accept_anyproto) |
| 996 | 996 |
{
|
| 997 |
- size_t len; |
|
| 998 | 997 |
const char *start = NULL, *p, *q, *end; |
| 999 | 998 |
if(!URL) |
| 1000 | 999 |
return 0; |
| ... | ... |
@@ -1154,7 +1154,7 @@ static int cli_loadftm(FILE *fs, struct cl_engine **engine, unsigned int options |
| 1154 | 1154 |
static int cli_loadign(FILE *fs, struct cl_engine **engine, unsigned int options, struct cli_dbio *dbio) |
| 1155 | 1155 |
{
|
| 1156 | 1156 |
const char *tokens[IGN_TOKENS]; |
| 1157 |
- char buffer[FILEBUFF], *pt; |
|
| 1157 |
+ char buffer[FILEBUFF]; |
|
| 1158 | 1158 |
unsigned int line = 0; |
| 1159 | 1159 |
struct cli_ignsig *new; |
| 1160 | 1160 |
struct cli_ignored *ignored; |
| ... | ... |
@@ -1398,7 +1398,7 @@ static int cli_loadmd5(FILE *fs, struct cl_engine **engine, unsigned int *signo, |
| 1398 | 1398 |
static int cli_loadmd(FILE *fs, struct cl_engine **engine, unsigned int *signo, int type, unsigned int options, struct cli_dbio *dbio, const char *dbname) |
| 1399 | 1399 |
{
|
| 1400 | 1400 |
const char *tokens[MD_TOKENS]; |
| 1401 |
- char buffer[FILEBUFF], *pt; |
|
| 1401 |
+ char buffer[FILEBUFF]; |
|
| 1402 | 1402 |
unsigned int line = 0, sigs = 0; |
| 1403 | 1403 |
int ret = CL_SUCCESS, crc; |
| 1404 | 1404 |
struct cli_meta_node *new; |
| ... | ... |
@@ -56,7 +56,7 @@ enum { UPACK_399, UPACK_11_12, UPACK_0151477, UPACK_0297729 };
|
| 56 | 56 |
int unupack(int upack, char *dest, uint32_t dsize, char *buff, uint32_t vma, uint32_t ep, uint32_t base, uint32_t va, int file) |
| 57 | 57 |
{
|
| 58 | 58 |
int j, searchval; |
| 59 |
- char *loc_esi, *loc_edi, *loc_ebx, *end_edi, *save_edi, *alvalue; |
|
| 59 |
+ char *loc_esi, *loc_edi = NULL, *loc_ebx, *end_edi, *save_edi, *alvalue; |
|
| 60 | 60 |
char *paddr, *pushed_esi, *save2; |
| 61 | 61 |
uint32_t save1, save3, loc_ecx, count, shlsize, original_ep, ret, loc_ebx_u; |
| 62 | 62 |
struct cli_exe_section section; |
| ... | ... |
@@ -530,8 +530,8 @@ int upx_inflatelzma(char *src, uint32_t ssize, char *dst, uint32_t *dsize, uint3 |
| 530 | 530 |
cli_LzmaInitUPX(&lz, *dsize); |
| 531 | 531 |
s.avail_in = ssize; |
| 532 | 532 |
s.avail_out = *dsize; |
| 533 |
- s.next_in = src+2; |
|
| 534 |
- s.next_out = dst; |
|
| 533 |
+ s.next_in = (unsigned char*)src+2; |
|
| 534 |
+ s.next_out = (unsigned char*)dst; |
|
| 535 | 535 |
|
| 536 | 536 |
if(cli_LzmaDecode(&lz, &s)==LZMA_RESULT_DATA_ERROR) {
|
| 537 | 537 |
/* __asm__ __volatile__("int3"); */
|
| ... | ... |
@@ -917,7 +917,7 @@ static int rar_unpack29(int fd, int solid, unpack_data_t *unpack_data) |
| 917 | 917 |
continue; |
| 918 | 918 |
} |
| 919 | 919 |
if (next_ch == 4) {
|
| 920 |
- unsigned int length; |
|
| 920 |
+ unsigned int length = 0; |
|
| 921 | 921 |
distance = 0; |
| 922 | 922 |
failed = FALSE; |
| 923 | 923 |
for (i=0 ; i < 4 && !failed; i++) {
|
| ... | ... |
@@ -562,6 +562,8 @@ static void execute_standard_filter(rarvm_data_t *rarvm_data, rarvm_standard_fil |
| 562 | 562 |
SET_VALUE(FALSE, &rarvm_data->mem[VM_GLOBALMEMADDR+0x1c], dest_pos-data_size); |
| 563 | 563 |
SET_VALUE(FALSE, &rarvm_data->mem[VM_GLOBALMEMADDR+0x20], data_size); |
| 564 | 564 |
break; |
| 565 |
+ default: /* make gcc happy */ |
|
| 566 |
+ break; |
|
| 565 | 567 |
} |
| 566 | 568 |
} |
| 567 | 569 |
|
| ... | ... |
@@ -989,6 +991,8 @@ static void rarvm_optimize(struct rarvm_prepared_program *prg) |
| 989 | 989 |
case VM_CMP: |
| 990 | 990 |
cmd->op_code = cmd->byte_mode ? VM_CMPB:VM_CMPD; |
| 991 | 991 |
continue; |
| 992 |
+ default: /* make gcc happy */ |
|
| 993 |
+ break; |
|
| 992 | 994 |
} |
| 993 | 995 |
if ((vm_cmdflags[cmd->op_code] & VMCF_CHFLAGS) == 0) {
|
| 994 | 996 |
continue; |
| ... | ... |
@@ -1023,6 +1027,8 @@ static void rarvm_optimize(struct rarvm_prepared_program *prg) |
| 1023 | 1023 |
case VM_NEG: |
| 1024 | 1024 |
cmd->op_code = cmd->byte_mode ? VM_NEGB:VM_NEGD; |
| 1025 | 1025 |
continue; |
| 1026 |
+ default: /* make gcc happy */ |
|
| 1027 |
+ break; |
|
| 1026 | 1028 |
} |
| 1027 | 1029 |
} |
| 1028 | 1030 |
} |
| ... | ... |
@@ -185,7 +185,7 @@ static unrar_fileheader_t *read_block(int fd, header_type hdr_type) |
| 185 | 185 |
unrar_dbgmsg("UNRAR: Pack Size: %u\n", file_header->pack_size);
|
| 186 | 186 |
unrar_dbgmsg("UNRAR: UnPack Version: 0x%.2x\n", file_header->unpack_ver);
|
| 187 | 187 |
unrar_dbgmsg("UNRAR: Pack Method: 0x%.2x\n", file_header->method);
|
| 188 |
- file_header->filename = (char *) malloc(file_header->name_size+1); |
|
| 188 |
+ file_header->filename = (unsigned char *) malloc(file_header->name_size+1); |
|
| 189 | 189 |
if(!file_header->filename) {
|
| 190 | 190 |
free(file_header); |
| 191 | 191 |
return NULL; |
| ... | ... |
@@ -393,7 +393,7 @@ int unrar_extract_next_prepare(unrar_state_t *state, const char *dirname) |
| 393 | 393 |
new_metadata->unpack_size = state->file_header->high_unpack_size * 0x100000000ULL + state->file_header->unpack_size; |
| 394 | 394 |
new_metadata->crc = state->file_header->file_crc; |
| 395 | 395 |
new_metadata->method = state->file_header->method; |
| 396 |
- new_metadata->filename = strdup(state->file_header->filename); |
|
| 396 |
+ new_metadata->filename = strdup((const char*)state->file_header->filename); |
|
| 397 | 397 |
if(!new_metadata->filename) {
|
| 398 | 398 |
free(new_metadata); |
| 399 | 399 |
return UNRAR_EMEM; |