1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-06 12:41:29 +00:00

Allow doing --data-length 0. That's the documented way to turn off UDP

payloads.
This commit is contained in:
david
2009-08-19 17:52:23 +00:00
parent ab09f1974f
commit fec2cc40d0
2 changed files with 5 additions and 6 deletions

View File

@@ -899,11 +899,11 @@ int nmap_main(int argc, char *argv[]) {
o.debugging++;
} else if (optcmp(long_options[option_index].name, "data-length") == 0) {
o.extra_payload_length = (int)strtol(optarg, NULL, 10);
if (o.extra_payload_length < 1 || o.extra_payload_length > MAX_PAYLOAD_ALLOWED)
if (o.extra_payload_length < 0 || o.extra_payload_length > MAX_PAYLOAD_ALLOWED)
fatal("data-length must be between 0 and %d", MAX_PAYLOAD_ALLOWED);
if (o.extra_payload_length > 1400 ) /* 1500 - IP with opts - TCP with opts. */
error("WARNING: Payloads bigger than 1400 bytes may not be sent successfully.");
o.extra_payload = (char *) safe_malloc(o.extra_payload_length);
o.extra_payload = (char *) safe_malloc(MIN(o.extra_payload_length, 1));
get_random_bytes(o.extra_payload, o.extra_payload_length);
} else if (optcmp(long_options[option_index].name, "send-eth") == 0) {
o.sendpref = PACKET_SEND_ETH_STRONG;

View File

@@ -227,14 +227,13 @@ static const char payload_null[] = "";
length is returned through the length pointer. */
const char *get_udp_payload(u16 dport, size_t *length) {
if (o.extra_payload_length > 0) {
if (o.extra_payload != NULL) {
*length = o.extra_payload_length;
return o.extra_payload;
}
else
} else {
return udp_port2payload(dport, length);
}
}
/* Get a payload appropriate for the given UDP port. For certain selected ports
a payload is returned, and for others a zero-length payload is returned. The