- Subject: Fix incorrect data size check for UDP.
- Author: Luca Bigliardi <shammash@artha.org>
- Bug-Debian; http://bugs.debian.org/546590
- Last-Update: 2009-09-19
-
- --- a/parseoptions.c
- +++ b/parseoptions.c
- @@ -606,9 +606,12 @@ int parse_options(int argc, char **argv)
- if (opt_numeric == TRUE) opt_gethost = FALSE;
-
- /* some error condition */
- - if (data_size+IPHDR_SIZE+TCPHDR_SIZE > 65535) {
- + if (data_size+IPHDR_SIZE+
- + (opt_udpmode?UDPHDR_SIZE:TCPHDR_SIZE) > 65535) {
- printf("Option error: sorry, data size must be <= %lu\n",
- - (unsigned long)(65535-IPHDR_SIZE+TCPHDR_SIZE));
- + (unsigned long)(65535-(IPHDR_SIZE+
- + (opt_udpmode?UDPHDR_SIZE:TCPHDR_SIZE)))
- + );
- exit(1);
- }
- else if (count <= 0 && count != -1) {
|