author | Petr Sumbera <petr.sumbera@oracle.com> |
Mon, 26 Aug 2013 13:00:27 -0700 | |
branch | s11u1-sru |
changeset 2748 | 76a9a8bd58ae |
permissions | -rw-r--r-- |
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); |