summaryrefslogtreecommitdiffstats
path: root/contrib/bind/bin/nsupdate/nsupdate.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bind/bin/nsupdate/nsupdate.c')
-rw-r--r--contrib/bind/bin/nsupdate/nsupdate.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/contrib/bind/bin/nsupdate/nsupdate.c b/contrib/bind/bin/nsupdate/nsupdate.c
index c8e8ce8..3a452cc 100644
--- a/contrib/bind/bin/nsupdate/nsupdate.c
+++ b/contrib/bind/bin/nsupdate/nsupdate.c
@@ -1,5 +1,5 @@
#if !defined(lint) && !defined(SABER)
-static const char rcsid[] = "$Id: nsupdate.c,v 8.27 2001/06/18 14:43:46 marka Exp $";
+static const char rcsid[] = "$Id: nsupdate.c,v 8.30 2003/04/03 05:51:07 marka Exp $";
#endif /* not lint */
/*
@@ -155,9 +155,6 @@ main(int argc, char **argv) {
struct map *mp;
ns_updrec *rrecp;
ns_updque listuprec;
- extern int getopt();
- extern char *optarg;
- extern int optind, opterr, optopt;
ns_tsig_key key;
char *keyfile=NULL, *keyname=NULL;
@@ -398,11 +395,15 @@ main(int argc, char **argv) {
(void) getword_str(buf2, sizeof buf2, &startp, endp);
if (isdigit(buf2[0])) { /* ttl */
- r_ttl = strtoul(buf2, 0, 10);
- if (errno == ERANGE && r_ttl == ULONG_MAX) {
+ u_long tmp_ttl;
+ errno = 0;
+ tmp_ttl = strtoul(buf2, 0, 10);
+ if ((errno == ERANGE && tmp_ttl == ULONG_MAX) ||
+ tmp_ttl > 0x7fffffffUL) {
fprintf(stderr, "oversized ttl: %s\n", buf2);
exit (1);
}
+ r_ttl = tmp_ttl;
(void) getword_str(buf2, sizeof buf2, &startp, endp);
}
OpenPOWER on IntegriCloud