summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Monnerat <patrick@monnerat.net>2019-02-14 14:54:01 +0100
committerPatrick Monnerat <patrick@monnerat.net>2019-02-14 14:54:01 +0100
commit489ef6b6941331fbccef48560fafef92fbe960ad (patch)
treeb35fb722912d75d80ec848f60793535858a76439
parentad373686c3c89b1f69aa93ec1a1ee49f8c00da1c (diff)
downloadcurl-489ef6b6941331fbccef48560fafef92fbe960ad.tar.gz
x509asn1: "Dereference of null pointer"
Detected by scan-build (false positive).
-rw-r--r--lib/x509asn1.c11
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) {