summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkirke%netscape.com <devnull@localhost>2001-03-01 21:45:33 +0000
committerkirke%netscape.com <devnull@localhost>2001-03-01 21:45:33 +0000
commitd1eeb3111f62541f40aa68a1948d4ba03d183591 (patch)
tree993bdcf84253d1958bfac635f83edbe62684bc61
parent5f004b51c9e3a46c81200be2ac52c3a550a1b78b (diff)
downloadnss-hg-d1eeb3111f62541f40aa68a1948d4ba03d183591.tar.gz
Bug 69582 endless loop on EOF reading Extensions
-rw-r--r--security/nss/cmd/certutil/certutil.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/security/nss/cmd/certutil/certutil.c b/security/nss/cmd/certutil/certutil.c
index 79140115d..02350a903 100644
--- a/security/nss/cmd/certutil/certutil.c
+++ b/security/nss/cmd/certutil/certutil.c
@@ -1349,11 +1349,15 @@ AddKeyUsage (void *extHandle)
fprintf(stdout, "%-25s 5 - Cert signning key\n", "");
fprintf(stdout, "%-25s 6 - CRL signning key\n", "");
fprintf(stdout, "%-25s Other to finish\n", "");
- gets (buffer);
- value = atoi (buffer);
- if (value < 0 || value > 6)
+ if (gets (buffer)) {
+ value = atoi (buffer);
+ if (value < 0 || value > 6)
+ break;
+ keyUsage |= (0x80 >> value);
+ }
+ else { /* gets() returns NULL on EOF or error */
break;
- keyUsage |= (0x80 >> value);
+ }
}
bitStringValue.data = &keyUsage;