author | Mike Sullivan <Mike.Sullivan@Oracle.COM> |
Thu, 05 Nov 2015 15:56:49 -0800 | |
changeset 5068 | 04572323827e |
parent 4723 | 4193dfeb0e39 |
permissions | -rw-r--r-- |
4723
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
1 |
Source: |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
2 |
Internal |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
3 |
|
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
4 |
Info: |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
5 |
To take out buffer overflow issue. |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
6 |
|
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
7 |
Status: |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
8 |
Need to determine if this patch has been sent upstream. |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
9 |
|
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
10 |
--- a/lib/coding.c |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
11 |
+++ b/lib/coding.c |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
12 |
@@ -253,18 +253,23 @@ static asn1_retCode |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
13 |
_asn1_objectid_der (unsigned char *str, unsigned char *der, int *der_len) |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
14 |
{ |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
15 |
int len_len, counter, k, first, max_len; |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
16 |
- char *temp, *n_end, *n_start; |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
17 |
+ char *temp = NULL, *n_end, *n_start; |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
18 |
unsigned char bit7; |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
19 |
unsigned long val, val1 = 0; |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
20 |
+ size_t temp_size = str ? strlen (str) : 0; |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
21 |
+ |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
22 |
+ temp_size += 2; |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
23 |
+ if (temp_size < 2) |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
24 |
+ return ASN1_MEM_ALLOC_ERROR; |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
25 |
|
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
26 |
max_len = *der_len; |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
27 |
|
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
28 |
- temp = (char *) _asn1_malloc (strlen (str) + 2); |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
29 |
+ temp = (char *) _asn1_malloc (temp_size); |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
30 |
if (temp == NULL) |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
31 |
return ASN1_MEM_ALLOC_ERROR; |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
32 |
|
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
33 |
- strcpy (temp, str); |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
34 |
- strcat (temp, "."); |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
35 |
+ strncpy (temp, str ? (const char *)str : "", temp_size); |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
36 |
+ strncat (temp, ".", 1); |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
37 |
|
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
38 |
counter = 0; |
4193dfeb0e39
21124729 Move libtasn1 from Desktop to Userland consolidation
Ann Lai <ann.lai@oracle.com>
parents:
diff
changeset
|
39 |
n_start = temp; |