components/libtasn1/patches/libtasn1-01-buffer-overflow.patch
author Rich Burridge <rich.burridge@oracle.com>
Tue, 02 Feb 2016 12:18:19 -0800
changeset 5385 ada5863c16fd
parent 4723 4193dfeb0e39
permissions -rw-r--r--
22649522 Popplet should be Poppler in its package manifest file.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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;