+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
@@ -3305,6 +3305,11 @@ _elementtree_XMLParser___init___impl(XMLParserObject *self, PyObject *html,
3305
3305
PyErr_NoMemory();
3306
3306
return -1;
3307
3307
}
3308
+
/* expat < 2.1.0 has no XML_SetHashSalt() */
3309
+
if (EXPAT(SetHashSalt) != NULL) {
3310
+
EXPAT(SetHashSalt)(self->parser,
3311
+
(unsigned long)_Py_HashSecret.expat.hashsalt);
3312
+
}
3308
3313
3309
3314
if (target) {
3310
3315
Py_INCREF(target);
Original file line number Diff line number Diff line change
@@ -1877,6 +1877,11 @@ MODULE_INITFUNC(void)
1877
1877
capi.SetStartDoctypeDeclHandler = XML_SetStartDoctypeDeclHandler;
1878
1878
capi.SetEncoding = XML_SetEncoding;
1879
1879
capi.DefaultUnknownEncodingHandler = PyUnknownEncodingHandler;
1880
+
#if XML_COMBINED_VERSION >= 20100
1881
+
capi.SetHashSalt = XML_SetHashSalt;
1882
+
#else
1883
+
capi.SetHashSalt = NULL;
1884
+
#endif
1880
1885
1881
1886
/* export using capsule */
1882
1887
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