diff --exclude='*~' -urN amap-5.0.orig/amapcrap.c amap-5.0/amapcrap.c --- amap-5.0.orig/amapcrap.c 2005-04-27 00:08:58.000000000 -0400 +++ amap-5.0/amapcrap.c 2005-04-27 00:30:35.000000000 -0400 @@ -103,14 +103,14 @@ while ((i = getopt(argc, argv, "M:N:SVem:n:p:uvw:")) >= 0) { switch (i) { case 'M': - if ((str = index(optarg, ',')) == NULL) { + if ((str = (unsigned char *)index(optarg, ',')) == NULL) { fprintf(stderr, "Error: Syntax is \"-M min,max\", e.g. \"-M 1,256\".\n"); exit(-1); } *str++ = 0; send_min = atoi(optarg); - send_max = atoi(str); + send_max = atoi((char *)str); if (send_min < 3 || send_max < 3 || send_min > 1024 || send_max > 1024 || send_min > send_max) { fprintf(stderr, diff --exclude='*~' -urN amap-5.0.orig/amap-lib.c amap-5.0/amap-lib.c --- amap-5.0.orig/amap-lib.c 2005-04-27 00:08:58.000000000 -0400 +++ amap-5.0/amap-lib.c 2005-04-27 00:30:35.000000000 -0400 @@ -396,7 +396,7 @@ f = amap_open_file(filename, "trigger", extension, opt->verbose); if (opt->verbose > 1) printf("\n"); - if (((amap_struct_triggers*) triggers = (amap_struct_triggers*) trigger = (amap_struct_triggers*) malloc(sizeof(amap_struct_triggers))) == NULL) + if ((triggers = trigger = (amap_struct_triggers*) malloc(sizeof(amap_struct_triggers))) == NULL) amap_error("malloc failed"); memset(trigger, 0, sizeof(amap_struct_triggers)); @@ -571,7 +571,7 @@ f = amap_open_file(filename, "response", extension, opt->verbose); if (opt->verbose > 1) printf("\n"); - if (((amap_struct_responses*) responses = (amap_struct_responses*) response = (amap_struct_responses*) malloc(sizeof(amap_struct_responses))) == NULL) + if ((responses = response = (amap_struct_responses*) malloc(sizeof(amap_struct_responses))) == NULL) amap_error("malloc failed"); memset(response, 0, sizeof(amap_struct_responses)); @@ -616,7 +616,7 @@ for (i = 0; i < strlen(triggerptr); i++) if (triggerptr[i] == ',') count++; - if (((amap_struct_triggerptr*) triggerptr_tmp = response->triggerptr = malloc(sizeof(amap_struct_triggerptr))) == NULL) + if ((triggerptr_tmp = response->triggerptr = malloc(sizeof(amap_struct_triggerptr))) == NULL) amap_error("malloc failed"); triggerptr_tmp->next = NULL; @@ -728,7 +728,7 @@ int count = 0; f = amap_open_file(filename, "nmap", "", opt->verbose); - if (((amap_struct_targets*) targets = (amap_struct_targets*) target = (amap_struct_targets*) malloc(sizeof(amap_struct_targets))) == NULL) + if ((targets = target = (amap_struct_targets*) malloc(sizeof(amap_struct_targets))) == NULL) amap_error("malloc failed"); memset(target, 0, sizeof(amap_struct_targets)); if ((port_tmp = target->ports = (amap_struct_ports *) malloc(sizeof(amap_struct_ports))) == NULL) @@ -1058,14 +1058,14 @@ } // oh yeah, we received data! if (len > 0 && opt->banner_only) { - printf("Banner on %s:%d/%s : %s\n", coms[i].target->target, coms[i].port->port, coms[i].port->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp", amap_printable_banner_string(buf, len, banner, sizeof(banner))); + printf("Banner on %s:%d/%s : %s\n", coms[i].target->target, coms[i].port->port, coms[i].port->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp", amap_printable_banner_string((char *)buf, len, banner, sizeof(banner))); if (opt->logfile != NULL) { if (opt->machine_readable) { - fprintf(opt->logfile, "%s:%d:%s:%s::%s:%s:", coms[i].target->target, coms[i].port->port, coms[i].port->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp", amap_skip_translate(coms[i].port->skip), AMAP_UFO, amap_printable_banner_string(buf, len, banner, sizeof(banner))); + fprintf(opt->logfile, "%s:%d:%s:%s::%s:%s:", coms[i].target->target, coms[i].port->port, coms[i].port->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp", amap_skip_translate(coms[i].port->skip), AMAP_UFO, amap_printable_banner_string((char *)buf, len, banner, sizeof(banner))); amap_banner_string(opt->logfile, buf, len); fprintf(opt->logfile, "\n"); } else - fprintf(opt->logfile, "Banner on %s:%d/%s : %s\n", coms[i].target->target, coms[i].port->port, coms[i].port->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp", amap_printable_banner_string(buf, len, banner, sizeof(banner))); + fprintf(opt->logfile, "Banner on %s:%d/%s : %s\n", coms[i].target->target, coms[i].port->port, coms[i].port->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp", amap_printable_banner_string((char *)buf, len, banner, sizeof(banner))); } coms[i].port->skip = 1; #ifdef OPENSSL @@ -1096,7 +1096,7 @@ if ((opt->one_is_enough == 0 || found == 0) && amap_lookup_id(coms[i].port->ids, "echo") == 0) { if (len >= response->min_length && len <= response->max_length && (response->ip_prot == AMAP_PROTO_BOTH || response->ip_prot == coms[i].port->ip_prot) && amap_lookup_id(coms[i].port->ids, response->id) == 0 && (response->triggerptr == NULL || amap_lookup_triggerptr(response->triggerptr, coms[i].trigger->id) == 1)) { - if (pcre_exec(response->pattern, response->hints, buf, len, 0, 0, offsets, sizeof(offsets)) >= 0) { + if (pcre_exec(response->pattern, response->hints, (char *)buf, len, 0, 0, offsets, sizeof(offsets)) >= 0) { found++; amap_add_id(coms[i].port, response->id); if (strcmp(response->id, "ssl") == 0 || strncmp(response->id, "ssl-", 4) == 0) @@ -1109,13 +1109,13 @@ info[0] = 0; if (opt->logfile != NULL) { if (opt->machine_readable) { - fprintf(opt->logfile, "%s:%d:%s:%s:%s:%s:%s:", coms[i].target->target, coms[i].port->port, coms[i].port->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp", amap_skip_translate(coms[i].port->skip), coms[i].ssl_enabled ? "SSL" : "", response->id, amap_printable_banner_string(coms[i].response, coms[i].response_length, banner, sizeof(banner))); + fprintf(opt->logfile, "%s:%d:%s:%s:%s:%s:%s:", coms[i].target->target, coms[i].port->port, coms[i].port->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp", amap_skip_translate(coms[i].port->skip), coms[i].ssl_enabled ? "SSL" : "", response->id, amap_printable_banner_string((char *)coms[i].response, coms[i].response_length, banner, sizeof(banner))); amap_banner_string(opt->logfile, coms[i].response, coms[i].response_length); fprintf(opt->logfile, "\n"); } else { fprintf(opt->logfile, "Protocol on %s:%d/%s%s%smatches %s", coms[i].target->target, coms[i].port->port, coms[i].port->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp", coms[i].ssl_enabled ? " over SSL " : " ", info, response->id); if (opt->banner) - fprintf(opt->logfile, " - banner: %s\n", amap_printable_banner_string(coms[i].response, coms[i].response_length, banner, sizeof(banner))); + fprintf(opt->logfile, " - banner: %s\n", amap_printable_banner_string((char *)coms[i].response, coms[i].response_length, banner, sizeof(banner))); else fprintf(opt->logfile, "\n"); if (opt->dump_all) { @@ -1127,7 +1127,7 @@ } printf("Protocol on %s:%d/%s%s%smatches %s", coms[i].target->target, coms[i].port->port, coms[i].port->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp", coms[i].ssl_enabled ? " over SSL " : " ", info, response->id); if (opt->banner) - printf(" - banner: %s\n", amap_printable_banner_string(coms[i].response, coms[i].response_length, banner, sizeof(banner))); + printf(" - banner: %s\n", amap_printable_banner_string((char *)coms[i].response, coms[i].response_length, banner, sizeof(banner))); else printf("\n"); if (opt->dump_all) { @@ -1159,7 +1159,7 @@ printf("Please send this output and the name of the application to %s:\n", AMAP_EMAIL); amap_dump_string(stdout, coms[i].response, coms[i].response_length, 16); } - coms[i].port->unknown_response = amap_memdup(coms[i].response, coms[i].response_length); + coms[i].port->unknown_response = (unsigned char *)amap_memdup((char *)coms[i].response, coms[i].response_length); coms[i].port->unknown_response_length = coms[i].response_length; } // now shutdown the connection @@ -1182,7 +1182,7 @@ amap_add_id(coms[i].port, banner); if (opt->logfile != NULL) { if (opt->machine_readable) { - fprintf(opt->logfile, "%s:%d:%s:%s:%s:%s:%s:", coms[i].target->target, coms[i].port->port, coms[i].port->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp", amap_skip_translate(coms[i].port->skip), coms[i].ssl_enabled ? "SSL" : "", coms[i].port->ids->id, amap_printable_banner_string(coms[i].response, coms[i].response_length, banner, sizeof(banner))); + fprintf(opt->logfile, "%s:%d:%s:%s:%s:%s:%s:", coms[i].target->target, coms[i].port->port, coms[i].port->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp", amap_skip_translate(coms[i].port->skip), coms[i].ssl_enabled ? "SSL" : "", coms[i].port->ids->id, amap_printable_banner_string((char *)coms[i].response, coms[i].response_length, banner, sizeof(banner))); amap_banner_string(opt->logfile, coms[i].response, coms[i].response_length); fprintf(opt->logfile, "\n"); } else @@ -1290,7 +1290,7 @@ if (FD_ISSET(coms[i].socket, &rfd) || FD_ISSET(coms[i].socket, &wfd)) { // somethings here ... error = 0; - if (getsockopt(coms[i].socket, SOL_SOCKET, SO_ERROR, &error, &error_len) < 0 || error != 0) { + if (getsockopt(coms[i].socket, SOL_SOCKET, SO_ERROR, &error, (socklen_t *)&error_len) < 0 || error != 0) { if (coms[i].port->skip < 1 && (opt->portscanner == 0 || opt->verbose) && opt->quiet == 0) amap_warn("Could not connect (unreachable) to %s:%d/%s, disabling port (EUNKN)", coms[i].target->target, coms[i].port->port, coms[i].port->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp"); coms[i].port->skip = 2; @@ -1346,14 +1346,14 @@ if (opt->ipv6) { struct sockaddr_in6 sa; int t = sizeof(sa); - getsockname(coms[i].socket, (struct sockaddr*)&sa, &t); + getsockname(coms[i].socket, (struct sockaddr*)&sa, (socklen_t *)&t); printf("DEBUG: socket %d/%d to %s:%d/%s is now RETRY CONNECT\n", coms[i].socket, htons(sa.sin6_port), coms[i].target->target, coms[i].port->port, coms[i].port->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp"); } else #endif { struct sockaddr_in sa; int t = sizeof(sa); - getsockname(coms[i].socket, (struct sockaddr*)&sa, &t); + getsockname(coms[i].socket, (struct sockaddr*)&sa, (socklen_t *)&t); printf("DEBUG: socket %d/%d to %s:%d/%s is now RETRY CONNECT\n", coms[i].socket, htons(sa.sin_port), coms[i].target->target, coms[i].port->port, coms[i].port->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp"); } } @@ -1408,18 +1408,18 @@ if (opt->ipv6) { struct sockaddr_in6 sa; int t = sizeof(sa); - getpeername(coms[i].socket, (struct sockaddr*)&sa, &t); + getpeername(coms[i].socket, (struct sockaddr*)&sa, (socklen_t *)&t); dport = htons(sa.sin6_port); - getsockname(coms[i].socket, (struct sockaddr*)&sa, &t); + getsockname(coms[i].socket, (struct sockaddr*)&sa, (socklen_t *)&t); printf("DEBUG: socket %d/%d->%d to %s:%d/%s became RETRY CONNECT\n", coms[i].socket, htons(sa.sin6_port), dport, coms[i].target->target, coms[i].port->port, coms[i].port->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp"); } else #endif { struct sockaddr_in sa; int t = sizeof(sa); - getpeername(coms[i].socket, (struct sockaddr*)&sa, &t); + getpeername(coms[i].socket, (struct sockaddr*)&sa, (socklen_t *)&t); dport = htons(sa.sin_port); - getsockname(coms[i].socket, (struct sockaddr*)&sa, &t); + getsockname(coms[i].socket, (struct sockaddr*)&sa, (socklen_t *)&t); printf("DEBUG: socket %d/%d->%d to %s:%d/%s became RETRY CONNECT\n", coms[i].socket, htons(sa.sin_port), dport, coms[i].target->target, coms[i].port->port, coms[i].port->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp"); } } @@ -1528,18 +1528,18 @@ if (opt->ipv6) { struct sockaddr_in6 sa; int t = sizeof(sa); - getpeername(coms[i].socket, (struct sockaddr*)&sa, &t); + getpeername(coms[i].socket, (struct sockaddr*)&sa, (socklen_t *)&t); dport = htons(sa.sin6_port); - getsockname(coms[i].socket, (struct sockaddr*)&sa, &t); + getsockname(coms[i].socket, (struct sockaddr*)&sa, (socklen_t *)&t); printf("DEBUG: socket %d/%d->%d to %s:%d/%s became ACTIVE (trigger %s send)\n", coms[i].socket, ntohs(sa.sin6_port), dport, coms[i].target->target, coms[i].port->port, coms[i].port->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp", coms[i].trigger->id); } else #endif { struct sockaddr_in sa; int t = sizeof(sa); - getpeername(coms[i].socket, (struct sockaddr*)&sa, &t); + getpeername(coms[i].socket, (struct sockaddr*)&sa, (socklen_t *)&t); dport = htons(sa.sin_port); - getsockname(coms[i].socket, (struct sockaddr*)&sa, &t); + getsockname(coms[i].socket, (struct sockaddr*)&sa, (socklen_t *)&t); printf("DEBUG: socket %d/%d->%d to %s:%d/%s became ACTIVE (trigger %s send)\n", coms[i].socket, ntohs(sa.sin_port), dport, coms[i].target->target, coms[i].port->port, coms[i].port->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp", coms[i].trigger->id); } } @@ -2067,7 +2067,7 @@ responses_tmp = (amap_struct_responses*) responses_tmp->next; } } else { - if (((amap_struct_triggers*) triggers = (amap_struct_triggers*) malloc(sizeof(amap_struct_triggers))) == NULL) + if (( triggers = (amap_struct_triggers*) malloc(sizeof(amap_struct_triggers))) == NULL) amap_error("malloc failed"); triggers->next = NULL; triggers->id = strdup("NULL"); @@ -2268,7 +2268,7 @@ printf(" %s:%d/%s", target_tmp->target, port_tmp->port, port_tmp->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp"); if (opt->logfile != NULL) { if (opt->machine_readable) { - fprintf(opt->logfile, "%s:%d:%s:%s:%s:%s:%s:", target_tmp->target, port_tmp->port, port_tmp->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp", amap_skip_translate(port_tmp->skip), port_tmp->ssl ? "SSL" : "", AMAP_UFO, amap_printable_banner_string(port_tmp->unknown_response, port_tmp->unknown_response_length, banner, sizeof(banner))); + fprintf(opt->logfile, "%s:%d:%s:%s:%s:%s:%s:", target_tmp->target, port_tmp->port, port_tmp->ip_prot == AMAP_PROTO_TCP ? "tcp" : "udp", amap_skip_translate(port_tmp->skip), port_tmp->ssl ? "SSL" : "", AMAP_UFO, amap_printable_banner_string((char *)port_tmp->unknown_response, port_tmp->unknown_response_length, banner, sizeof(banner))); amap_banner_string(opt->logfile, port_tmp->unknown_response, port_tmp->unknown_response_length); fprintf(opt->logfile, "\n"); } else