diff options
author | bcook <> | 2015-07-18 17:19:56 +0000 |
---|---|---|
committer | bcook <> | 2015-07-18 17:19:56 +0000 |
commit | 8eaafeea61cafe968ce422dde5c0713e7c70cd0a (patch) | |
tree | 6d9e5d9752bfe8122f6cdddebdb596b76cf107de | |
parent | fb4b9046bf049484f0a34a724bc5b6c7a17f967a (diff) | |
download | openbsd-8eaafeea61cafe968ce422dde5c0713e7c70cd0a.tar.gz openbsd-8eaafeea61cafe968ce422dde5c0713e7c70cd0a.tar.bz2 openbsd-8eaafeea61cafe968ce422dde5c0713e7c70cd0a.zip |
check sscanf conversion, fixes Coverity 21666
ok doug@, miod@, guenther@
-rw-r--r-- | src/regress/lib/libcrypto/evp/evptest.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/regress/lib/libcrypto/evp/evptest.c b/src/regress/lib/libcrypto/evp/evptest.c index a71c1fb55a..bd5da475f1 100644 --- a/src/regress/lib/libcrypto/evp/evptest.c +++ b/src/regress/lib/libcrypto/evp/evptest.c | |||
@@ -81,10 +81,14 @@ convert(unsigned char *s) | |||
81 | unsigned int n; | 81 | unsigned int n; |
82 | 82 | ||
83 | if (!s[1]) { | 83 | if (!s[1]) { |
84 | fprintf(stderr, "Odd number of hex digits!"); | 84 | fprintf(stderr, "Odd number of hex digits!\n"); |
85 | exit(4); | 85 | exit(4); |
86 | } | 86 | } |
87 | sscanf((char *)s, "%2x",&n); | 87 | if (sscanf((char *)s, "%2x", &n) != 1) { |
88 | fprintf(stderr, "Invalid hex value at %s\n", s); | ||
89 | exit(4); | ||
90 | } | ||
91 | |||
88 | *d = (unsigned char)n; | 92 | *d = (unsigned char)n; |
89 | } | 93 | } |
90 | return s - d; | 94 | return s - d; |