Hi tech@,

this diff removes the atoi(3) call from keynote(1).

fritjof


Index: keynote-keygen.c
===================================================================
RCS file: /cvs/src/lib/libkeynote/keynote-keygen.c,v
retrieving revision 1.21
diff -u -p -r1.21 keynote-keygen.c
--- keynote-keygen.c    29 Jun 2004 11:35:56 -0000      1.21
+++ keynote-keygen.c    16 Jan 2015 19:44:42 -0000
@@ -24,6 +24,7 @@
 
 #include <ctype.h>
 #include <fcntl.h>
+#include <limits.h>
 #include <regex.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -106,6 +107,7 @@ keynote_keygen(int argc, char *argv[])
     RSA *rsa;
     FILE *fp;
     char *algname;
+    const char *errstr;
 
     if ((argc != 5) && (argc != 6) && (argc != 7))
     {
@@ -135,8 +137,8 @@ keynote_keygen(int argc, char *argv[])
 
     if (argc > 5)
     {
-       begin = atoi(argv[5]);
-       if (begin <= -1)
+       begin = strtonum(argv[5], 0, INT_MAX, &errstr);
+       if (errstr)
        {
            fprintf(stderr, "Erroneous value for print-offset parameter.\n");
            exit(1);
@@ -145,8 +147,8 @@ keynote_keygen(int argc, char *argv[])
 
     if (argc > 6)
     {
-       prlen = atoi(argv[6]);
-       if (prlen <= 0)
+       prlen = strtonum(argv[6], 1, INT_MAX, &errstr);
+       if (errstr)
        {
            fprintf(stderr, "Erroneous value for print-length parameter.\n");
            exit(1);
@@ -162,9 +164,9 @@ keynote_keygen(int argc, char *argv[])
     }
 
     alg = keynote_get_key_algorithm(algname, &enc, &ienc);
-    len = atoi(argv[2]);
+    len = strtonum(argv[2], 1, INT_MAX, &errstr);
 
-    if (len <= 0)
+    if (errstr)
     {
        fprintf(stderr, "Invalid specified keysize %d\n", len);
        exit(1);
Index: keynote-sign.c
===================================================================
RCS file: /cvs/src/lib/libkeynote/keynote-sign.c,v
retrieving revision 1.16
diff -u -p -r1.16 keynote-sign.c
--- keynote-sign.c      29 Jun 2004 11:35:56 -0000      1.16
+++ keynote-sign.c      16 Jan 2015 19:44:46 -0000
@@ -23,6 +23,7 @@
 #include <sys/stat.h>
 
 #include <ctype.h>
+#include <limits.h>
 #include <regex.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -50,6 +51,7 @@ keynote_sign(int argc, char *argv[])
     char *buf, *buf2, *sig, *algname;
     int fd, flg = 0, buflen;
     struct stat sb;
+    const char *errstr;
 
     if ((argc != 4) &&
        (argc != 5) &&
@@ -65,8 +67,8 @@ keynote_sign(int argc, char *argv[])
 
     if (argc > 4 + flg)
     {
-        begin = atoi(argv[4 + flg]);
-        if (begin <= -1)
+       begin = strtonum(argv[4 + flg], 0, INT_MAX, &errstr);
+        if (errstr)
         {
             fprintf(stderr, "Erroneous value for print-offset parameter.\n");
             exit(1);
@@ -75,8 +77,8 @@ keynote_sign(int argc, char *argv[])
         
     if (argc > 5 + flg)
     {
-        prlen = atoi(argv[5 + flg]);
-        if (prlen <= 0)
+       prlen = strtonum(argv[5 + flg], 1, INT_MAX, &errstr);
+        if (errstr)
         {
             fprintf(stderr, "Erroneous value for print-length parameter.\n");
             exit(1);

Attachment: pgp__Xagg7l1q.pgp
Description: PGP signature

Reply via email to