tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[PATCH] cu (tip) made intercepting wrong speed



This is a simple patch to protect users from silly mistakes (I've done
it...).

After a quick glance at tip/cu man page, I had mixed tip and cu options
(misinterpreting tip' one, BTW) ending with this:

cu -speed 115200 -l /dev/ttyU0

and obtained a puzzling garbage on the screen, since the speed was in
fact set after "-s" from "peed", ended being 0 (thanks to atoi(3)) and 
so being finally reset to the default, the 115200 being, for itself,
interpreted as a phone number...

Since I spent some time verifying cabling etc. before realizing the
mistake and that it was just the incorrect baud rate, it is worth
intercepting nonsense (0 is still a valid speed in order to keep the
traditional behavior).

-- 
        Thierry Laronde <tlaronde +AT+ polynum +dot+ com>
                     http://www.kergis.com/
                       http://www.sbfa.fr/
Key fingerprint = 0FF7 E906 FBAF FE95 FD89  250D 52B1 AE95 6006 F40C
Index: cu.c
===================================================================
RCS file: /cvsroot/src/usr.bin/tip/cu.c,v
retrieving revision 1.23
diff -u -r1.23 cu.c
--- cu.c	3 Jan 2016 15:38:29 -0000	1.23
+++ cu.c	17 Aug 2019 15:44:25 -0000
@@ -140,7 +140,14 @@
 			useresc = -1;
 			break;
 		case 's':
-			BR = atoi(optarg);
+			{
+				char *ep;
+
+				errno = 0;
+				BR = strtol(optarg, &ep, 0);
+				if (ep == optarg || *ep != '\0' || errno != 0 || BR < 0)
+					errx(3,"incorrect speed (wrong number or option)");
+			}
 			break;
 		case 'h':
 			HD = TRUE;


Home | Main Index | Thread Index | Old Index