Submitted By: Douglas R. Reno Date: 2019-07-05 Initial Package Version: 1.1.33 Upstream Status: Applied Origin: https://gitlab.gnome.org/GNOME/libxslt/commit/e03553605b45c88f0b4b2980adfbbb8f6fca2fd6 Description: Fixes CVE-2019-11068 in libxslt, a security framework bypass. diff -Naurp libxslt-1.1.33.orig/libxslt/documents.c libxslt-1.1.33/libxslt/documents.c --- libxslt-1.1.33.orig/libxslt/documents.c 2015-05-10 09:11:29.000000000 -0500 +++ libxslt-1.1.33/libxslt/documents.c 2019-07-05 13:08:13.976670506 -0500 @@ -296,10 +296,11 @@ xsltLoadDocument(xsltTransformContextPtr int res; res = xsltCheckRead(ctxt->sec, ctxt, URI); - if (res == 0) { - xsltTransformError(ctxt, NULL, NULL, - "xsltLoadDocument: read rights for %s denied\n", - URI); + if (res <= 0) { + if (res == 0) + xsltTransformError(ctxt, NULL, NULL, + "xsltLoadDocument: read rights for %s denied\n", + URI); return(NULL); } } @@ -372,10 +373,11 @@ xsltLoadStyleDocument(xsltStylesheetPtr int res; res = xsltCheckRead(sec, NULL, URI); - if (res == 0) { - xsltTransformError(NULL, NULL, NULL, - "xsltLoadStyleDocument: read rights for %s denied\n", - URI); + if (res <= 0) { + if (res == 0) + xsltTransformError(NULL, NULL, NULL, + "xsltLoadStyleDocument: read rights for %s denied\n", + URI); return(NULL); } } diff -Naurp libxslt-1.1.33.orig/libxslt/imports.c libxslt-1.1.33/libxslt/imports.c --- libxslt-1.1.33.orig/libxslt/imports.c 2017-12-02 02:58:51.000000000 -0600 +++ libxslt-1.1.33/libxslt/imports.c 2019-07-05 13:08:32.201199584 -0500 @@ -130,10 +130,11 @@ xsltParseStylesheetImport(xsltStylesheet int secres; secres = xsltCheckRead(sec, NULL, URI); - if (secres == 0) { - xsltTransformError(NULL, NULL, NULL, - "xsl:import: read rights for %s denied\n", - URI); + if (secres <= 0) { + if (secres == 0) + xsltTransformError(NULL, NULL, NULL, + "xsl:import: read rights for %s denied\n", + URI); goto error; } } diff -Naurp libxslt-1.1.33.orig/libxslt/transform.c libxslt-1.1.33/libxslt/transform.c --- libxslt-1.1.33.orig/libxslt/transform.c 2018-11-22 11:59:38.000000000 -0600 +++ libxslt-1.1.33/libxslt/transform.c 2019-07-05 13:09:00.994036330 -0500 @@ -3493,10 +3493,11 @@ xsltDocumentElem(xsltTransformContextPtr */ if (ctxt->sec != NULL) { ret = xsltCheckWrite(ctxt->sec, ctxt, filename); - if (ret == 0) { - xsltTransformError(ctxt, NULL, inst, - "xsltDocumentElem: write rights for %s denied\n", - filename); + if (ret <= 0) { + if (ret == 0) + xsltTransformError(ctxt, NULL, inst, + "xsltDocumentElem: write rights for %s denied\n", + filename); xmlFree(URL); xmlFree(filename); return; diff -Naurp libxslt-1.1.33.orig/libxslt/xslt.c libxslt-1.1.33/libxslt/xslt.c --- libxslt-1.1.33.orig/libxslt/xslt.c 2017-12-02 02:58:51.000000000 -0600 +++ libxslt-1.1.33/libxslt/xslt.c 2019-07-05 13:09:25.675754418 -0500 @@ -6763,10 +6763,11 @@ xsltParseStylesheetFile(const xmlChar* f int res; res = xsltCheckRead(sec, NULL, filename); - if (res == 0) { - xsltTransformError(NULL, NULL, NULL, - "xsltParseStylesheetFile: read rights for %s denied\n", - filename); + if (res <= 0) { + if (res == 0) + xsltTransformError(NULL, NULL, NULL, + "xsltParseStylesheetFile: read rights for %s denied\n", + filename); return(NULL); } }