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);
pgp__Xagg7l1q.pgp
Description: PGP signature
