DragonFly BSD
DragonFly submit List (threaded) for 2004-09
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Mentioning strtonum(3) in style(9)


From: "Andre Nathan" <andre@xxxxxxxxxxxxxxx>
Date: Fri, 3 Sep 2004 20:36:42 -0300 (BRT)

Hello

There was a recent style(9) commit regarding the use of safe functions, so
I guess strtonum(3) should be mentioned too. Below is a patch, though
someone who speaks english better than me will probably come up with
better wording...

--- style.9.orig        2004-09-03 19:38:00.000000000 -0300
+++ style.9     2004-09-03 20:38:34.000000000 -0300
@@ -353,10 +353,10 @@
                        bflag = 1;
                        break;
                case 'n':
-                       num = strtol(optarg, &ep, 10);
-                       if (num <= 0 || *ep != '\e0') {
-                               warnx("illegal number, -n argument -- %s",
-                                   optarg);
+                       num = strtonum(optarg, 0, INT_MAX, &errstr);
+                       if (errstr) {
+                               warnx("-n argument is %s: %s", errstr,
+                                     optarg);
                                usage();
                        }
                        break;
@@ -652,6 +652,14 @@
 should be used instead of
 .Xr sprintf 3 .
 .Pp
+When doing string-to-number conversions,
+.Xr strtonum 3
+should be used instead of functions which are either difficult or impossible
+to use safely, such as
+.Xr atoi 3 ,
+.Xr strtol 3
+and similars.
+.Pp
 Varargs procedures should be formatted as follows:
 .Bd -literal
 #include <stdarg.h>

I'd like to point to a previous thread[1] where I sent a patch to mention
strtonum on the manual pages of the other string-to-number functions (as
well as patches that substitute calls to these functions).

Regards,
Andre

[1]http://leaf.dragonflybsd.org/mailarchive/submit/2004-08/msg00078.html



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