+15
-1
lines changedFilter options
+15
-1
lines changed Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@
3
3
4
4
/* note: you must import expat.h before importing this module! */
5
5
6
-
#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.0"
6
+
#define PyExpat_CAPI_MAGIC "pyexpat.expat_CAPI 1.1"
7
7
#define PyExpat_CAPSULE_NAME "pyexpat.expat_CAPI"
8
8
9
9
struct PyExpat_CAPI
@@ -48,6 +48,8 @@ struct PyExpat_CAPI
48
48
enum XML_Status (*SetEncoding)(XML_Parser parser, const XML_Char *encoding);
49
49
int (*DefaultUnknownEncodingHandler)(
50
50
void *encodingHandlerData, const XML_Char *name, XML_Encoding *info);
51
+
/* might be none for expat < 2.1.0 */
52
+
int (*SetHashSalt)(XML_Parser parser, unsigned long hash_salt);
51
53
/* always add new stuff to the end! */
52
54
};
53
55
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
1
+
The C accelerated _elementtree module now initializes hash randomization
2
+
salt from _Py_HashSecret instead of libexpat's default CSPRNG.
Original file line number Diff line number Diff line change
@@ -3261,6 +3261,11 @@ _elementtree_XMLParser___init___impl(XMLParserObject *self, PyObject *html,
3261
3261
PyErr_NoMemory();
3262
3262
return -1;
3263
3263
}
3264
+
/* expat < 2.1.0 has no XML_SetHashSalt() */
3265
+
if (EXPAT(SetHashSalt) != NULL) {
3266
+
EXPAT(SetHashSalt)(self->parser,
3267
+
(unsigned long)_Py_HashSecret.expat.hashsalt);
3268
+
}
3264
3269
3265
3270
if (target) {
3266
3271
Py_INCREF(target);
Original file line number Diff line number Diff line change
@@ -1887,6 +1887,11 @@ MODULE_INITFUNC(void)
1887
1887
capi.SetStartDoctypeDeclHandler = XML_SetStartDoctypeDeclHandler;
1888
1888
capi.SetEncoding = XML_SetEncoding;
1889
1889
capi.DefaultUnknownEncodingHandler = PyUnknownEncodingHandler;
1890
+
#if XML_COMBINED_VERSION >= 20100
1891
+
capi.SetHashSalt = XML_SetHashSalt;
1892
+
#else
1893
+
capi.SetHashSalt = NULL;
1894
+
#endif
1890
1895
1891
1896
/* export using capsule */
1892
1897
capi_object = PyCapsule_New(&capi, PyExpat_CAPSULE_NAME, NULL);
You can’t perform that action at this time.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4