123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- Index: netcat-openbsd-1.89/netcat.c
- ===================================================================
- --- netcat-openbsd-1.89.orig/netcat.c 2008-01-22 16:17:17.000000000 -0500
- +++ netcat-openbsd-1.89/netcat.c 2008-01-22 16:17:18.000000000 -0500
- @@ -67,7 +67,7 @@
-
- /* Command Line Options */
- int dflag; /* detached, no stdin */
- -unsigned int iflag; /* Interval Flag */
- +int iflag; /* Interval Flag */
- int jflag; /* use jumbo frames if we can */
- int kflag; /* More than one connect */
- int lflag; /* Bind to local port */
- @@ -108,13 +108,13 @@
- main(int argc, char *argv[])
- {
- int ch, s, ret, socksv;
- - char *host, *uport;
- + char *host, *uport, *endp;
- struct addrinfo hints;
- struct servent *sv;
- socklen_t len;
- struct sockaddr_storage cliaddr;
- char *proxy;
- - const char *errstr, *proxyhost = "", *proxyport = NULL;
- + const char *proxyhost = "", *proxyport = NULL;
- struct addrinfo proxyhints;
-
- ret = 1;
- @@ -122,6 +122,7 @@
- socksv = 5;
- host = NULL;
- uport = NULL;
- + endp = NULL;
- sv = NULL;
-
- while ((ch = getopt(argc, argv,
- @@ -153,9 +154,9 @@
- help();
- break;
- case 'i':
- - iflag = strtonum(optarg, 0, UINT_MAX, &errstr);
- - if (errstr)
- - errx(1, "interval %s: %s", errstr, optarg);
- + iflag = (int)strtoul(optarg, &endp, 10);
- + if (iflag < 0 || *endp != '\0')
- + errx(1, "interval cannot be negative");
- break;
- case 'j':
- jflag = 1;
- @@ -191,9 +192,11 @@
- vflag = 1;
- break;
- case 'w':
- - timeout = strtonum(optarg, 0, INT_MAX / 1000, &errstr);
- - if (errstr)
- - errx(1, "timeout %s: %s", errstr, optarg);
- + timeout = (int)strtoul(optarg, &endp, 10);
- + if (timeout < 0 || *endp != '\0')
- + errx(1, "timeout cannot be negative");
- + if (timeout >= (INT_MAX / 1000))
- + errx(1, "timeout too large");
- timeout *= 1000;
- break;
- case 'x':
- @@ -680,8 +683,7 @@
- void
- build_ports(char *p)
- {
- - const char *errstr;
- - char *n;
- + char *n, *endp;
- int hi, lo, cp;
- int x = 0;
-
- @@ -693,12 +695,12 @@
- n++;
-
- /* Make sure the ports are in order: lowest->highest. */
- - hi = strtonum(n, 1, PORT_MAX, &errstr);
- - if (errstr)
- - errx(1, "port number %s: %s", errstr, n);
- - lo = strtonum(p, 1, PORT_MAX, &errstr);
- - if (errstr)
- - errx(1, "port number %s: %s", errstr, p);
- + hi = (int)strtoul(n, &endp, 10);
- + if (hi <= 0 || hi > PORT_MAX || *endp != '\0')
- + errx(1, "port range not valid");
- + lo = (int)strtoul(p, &endp, 10);
- + if (lo <= 0 || lo > PORT_MAX || *endp != '\0')
- + errx(1, "port range not valid");
-
- if (lo > hi) {
- cp = hi;
- @@ -729,9 +731,9 @@
- }
- }
- } else {
- - hi = strtonum(p, 1, PORT_MAX, &errstr);
- - if (errstr)
- - errx(1, "port number %s: %s", errstr, p);
- + hi = (int)strtoul(p, &endp, 10);
- + if (hi <= 0 || hi > PORT_MAX || *endp != '\0')
- + errx(1, "port range not valid");
- portlist[0] = calloc(1, PORT_MAX_LEN);
- if (portlist[0] == NULL)
- err(1, NULL);
|