components/libxslt/patches/CVE-2012-6139-2.patch
author Petr Sumbera <petr.sumbera@oracle.com>
Mon, 26 Aug 2013 13:00:27 -0700
branchs11u1-sru
changeset 2748 76a9a8bd58ae
permissions -rw-r--r--
16554178 problem in LIBRARY/LIBXSLT
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2748
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     1
From 6c99c519d97e5fcbec7a9537d190efb442e4e833 Mon Sep 17 00:00:00 2001
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     2
From: Nick Wellnhofer <[email protected]>
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     3
Date: Wed, 10 Oct 2012 10:09:36 +0000
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     4
Subject: Crash when passing an uninitialized variable to document()
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     5
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     6
https://bugzilla.gnome.org/show_bug.cgi?id=685330
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     7
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     8
Missing check for NULL
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     9
---
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    10
diff --git a/libxslt/functions.c b/libxslt/functions.c
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    11
index ed2c163..c754994 100644
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    12
--- a/libxslt/functions.c
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    13
+++ b/libxslt/functions.c
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    14
@@ -260,7 +260,7 @@ xsltDocumentFunction(xmlXPathParserContextPtr ctxt, int nargs)
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    15
         obj = valuePop(ctxt);
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    16
         ret = xmlXPathNewNodeSet(NULL);
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    17
 
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    18
-        if (obj->nodesetval) {
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    19
+        if ((obj != NULL) && obj->nodesetval) {
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    20
             for (i = 0; i < obj->nodesetval->nodeNr; i++) {
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    21
                 valuePush(ctxt,
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    22
                           xmlXPathNewNodeSet(obj->nodesetval->nodeTab[i]));
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    23
@@ -280,7 +280,8 @@ xsltDocumentFunction(xmlXPathParserContextPtr ctxt, int nargs)
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    24
             }
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    25
         }
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    26
 
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    27
-        xmlXPathFreeObject(obj);
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    28
+        if (obj != NULL)
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    29
+            xmlXPathFreeObject(obj);
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    30
         if (obj2 != NULL)
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    31
             xmlXPathFreeObject(obj2);
76a9a8bd58ae 16554178 problem in LIBRARY/LIBXSLT
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    32
         valuePush(ctxt, ret);