diff options
author | Patrick Monnerat <patrick@monnerat.net> | 2019-02-14 14:54:01 +0100 |
---|---|---|
committer | Patrick Monnerat <patrick@monnerat.net> | 2019-02-14 14:54:01 +0100 |
commit | 489ef6b6941331fbccef48560fafef92fbe960ad (patch) | |
tree | b35fb722912d75d80ec848f60793535858a76439 | |
parent | ad373686c3c89b1f69aa93ec1a1ee49f8c00da1c (diff) | |
download | curl-489ef6b6941331fbccef48560fafef92fbe960ad.tar.gz |
x509asn1: "Dereference of null pointer"
Detected by scan-build (false positive).
-rw-r--r-- | lib/x509asn1.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/x509asn1.c b/lib/x509asn1.c index 746e1e8e8..6bd9e4ed7 100644 --- a/lib/x509asn1.c +++ b/lib/x509asn1.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -362,7 +362,7 @@ static int encodeUint(char *buf, int n, unsigned int x) Return the total number of encoded digits, even if larger than `n'. */ if(y) { - i += encodeUint(buf, n, y); + i = encodeUint(buf, n, y); x -= y * 10; } if(i < n) @@ -375,7 +375,7 @@ static int encodeUint(char *buf, int n, unsigned int x) static int encodeOID(char *buf, int n, const char *beg, const char *end) { - int i = 0; + int i; unsigned int x; unsigned int y; @@ -387,7 +387,7 @@ static int encodeOID(char *buf, int n, const char *beg, const char *end) y = *(const unsigned char *) beg++; x = y / 40; y -= x * 40; - i += encodeUint(buf + i, n - i, x); + i = encodeUint(buf, n, x); if(i < n) buf[i] = '.'; i++; @@ -417,12 +417,13 @@ static const char *OID2str(const char *beg, const char *end, bool symbolic) char *buf = (char *) NULL; const curl_OID * op; int n; + char dummy; /* Convert an ASN.1 OID into its dotted or symbolic string representation. Return the dynamically allocated string, or NULL if an error occurs. */ if(beg < end) { - n = encodeOID((char *) NULL, -1, beg, end); + n = encodeOID(&dummy, 0, beg, end); if(n >= 0) { buf = malloc(n + 1); if(buf) { |