File php7-CVE-2021-21707.patch of Package php7.24757

Index: php-7.2.5/ext/dom/domimplementation.c
===================================================================
--- php-7.2.5.orig/ext/dom/domimplementation.c	2018-04-24 17:09:53.000000000 +0200
+++ php-7.2.5/ext/dom/domimplementation.c	2021-11-26 11:33:06.574495527 +0100
@@ -114,6 +114,11 @@ PHP_METHOD(domimplementation, createDocu
 		pch2 = (xmlChar *) systemid;
 	}
 
+	if (strstr(name, "%00")) {
+		php_error_docref(NULL, E_WARNING, "URI must not contain percent-encoded NUL bytes");
+		RETURN_FALSE;
+	}
+
 	uri = xmlParseURI(name);
 	if (uri != NULL && uri->opaque != NULL) {
 		localname = xmlStrdup((xmlChar *) uri->opaque);
Index: php-7.2.5/ext/libxml/libxml.c
===================================================================
--- php-7.2.5.orig/ext/libxml/libxml.c	2018-04-24 17:09:55.000000000 +0200
+++ php-7.2.5/ext/libxml/libxml.c	2021-11-26 11:33:06.574495527 +0100
@@ -308,6 +308,10 @@ static void *php_libxml_streams_IO_open_
 	int isescaped=0;
 	xmlURI *uri;
 
+	if (strstr(filename, "%00")) {
+		php_error_docref(NULL, E_WARNING, "URI must not contain percent-encoded NUL bytes");
+		return NULL;
+	}
 
 	uri = xmlParseURI(filename);
 	if (uri && (uri->scheme == NULL ||
@@ -438,6 +442,11 @@ php_libxml_output_buffer_create_filename
 	if (URI == NULL)
 		return(NULL);
 
+	if (strstr(URI, "%00")) {
+		php_error_docref(NULL, E_WARNING, "URI must not contain percent-encoded NUL bytes");
+		return NULL;
+	}
+
 	puri = xmlParseURI(URI);
 	if (puri != NULL) {
 		if (puri->scheme != NULL)
openSUSE Build Service is sponsored by