From b9643eff963a290c90472e3405d942eaa3e1f2ca Mon Sep 17 00:00:00 2001 From: tedu <> Date: Thu, 27 Dec 2018 17:22:45 +0000 Subject: port ranges can be ambiguous with hypenated port-names. specify that ranges must be numeric, and only check for range if first argument is a digit. identified by danj, fix suggest by sthen --- src/usr.bin/nc/nc.1 | 8 ++++---- src/usr.bin/nc/netcat.c | 5 +++-- 2 files changed, 7 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/usr.bin/nc/nc.1 b/src/usr.bin/nc/nc.1 index 2c84a0972f..b05575df67 100644 --- a/src/usr.bin/nc/nc.1 +++ b/src/usr.bin/nc/nc.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: nc.1,v 1.91 2018/09/25 20:05:07 jmc Exp $ +.\" $OpenBSD: nc.1,v 1.92 2018/12/27 17:22:45 tedu Exp $ .\" .\" Copyright (c) 1996 David Sacerdote .\" All rights reserved. @@ -25,7 +25,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd $Mdocdate: September 25 2018 $ +.Dd $Mdocdate: December 27 2018 $ .Dt NC 1 .Os .Sh NAME @@ -391,8 +391,8 @@ sockets, a destination is required and is the socket path to connect to option is given). .Pp .Ar port -can be a specified as a numeric port number, or as a service name. -Ports may be specified in a range of the form +can be a specified as a numeric port number or as a service name. +Port ranges may be specified as numeric port numbers of the form .Ar nn Ns - Ns Ar mm . In general, a destination port must be specified, diff --git a/src/usr.bin/nc/netcat.c b/src/usr.bin/nc/netcat.c index e0966f1952..adfad2dcd9 100644 --- a/src/usr.bin/nc/netcat.c +++ b/src/usr.bin/nc/netcat.c @@ -1,4 +1,4 @@ -/* $OpenBSD: netcat.c,v 1.199 2018/11/29 14:25:06 tedu Exp $ */ +/* $OpenBSD: netcat.c,v 1.200 2018/12/27 17:22:45 tedu Exp $ */ /* * Copyright (c) 2001 Eric Jackson <ericj@monkey.org> * Copyright (c) 2015 Bob Beck. All rights reserved. @@ -42,6 +42,7 @@ #include <netinet/ip.h> #include <arpa/telnet.h> +#include <ctype.h> #include <err.h> #include <errno.h> #include <limits.h> @@ -1427,7 +1428,7 @@ build_ports(char *p) int hi, lo, cp; int x = 0; - if ((n = strchr(p, '-')) != NULL) { + if (isdigit((unsigned char)*p) && (n = strchr(p, '-')) != NULL) { *n = '\0'; n++; -- cgit v1.2.3-55-g6feb