Victor Stinner
1b18455695
bpo-38392: PyObject_GC_Track() validates object in debug mode (GH-16615)
...
In debug mode, PyObject_GC_Track() now calls tp_traverse() of the
object type to ensure that the object is valid: test that objects
visited by tp_traverse() are valid.
Fix pyexpat.c: only track the parser in the GC once the parser is
fully initialized.
2019-10-08 00:09:31 +02:00
Serhiy Storchaka
279f44678c
bpo-37206: Unrepresentable default values no longer represented as None. (GH-13933)
...
In ArgumentClinic, value "NULL" should now be used only for unrepresentable default values
(like in the optional third parameter of getattr). "None" should be used if None is accepted
as argument and passing None has the same effect as not passing the argument at all.
2019-09-14 12:24:05 +03:00
Serhiy Storchaka
41c57b3353
bpo-37994: Fix silencing all errors if an attribute lookup fails. (GH-15630)
...
Only AttributeError should be silenced.
2019-09-01 12:03:39 +03:00
Jeroen Demeyer
1dbd084f1f
bpo-29548: no longer use PyEval_Call* functions (GH-14683)
2019-07-12 00:57:32 +09:00
Jeroen Demeyer
196a530e00
bpo-37483: add _PyObject_CallOneArg() function ( #14558 )
2019-07-04 19:31:34 +09:00
Jeroen Demeyer
530f506ac9
bpo-36974: tp_print -> tp_vectorcall_offset and tp_reserved -> tp_as_async (GH-13464)
...
Automatically replace
tp_print -> tp_vectorcall_offset
tp_compare -> tp_as_async
tp_reserved -> tp_as_async
2019-05-30 19:13:39 -07:00
Serhiy Storchaka
a24107b04c
bpo-35459: Use PyDict_GetItemWithError() instead of PyDict_GetItem(). (GH-11112)
2019-02-25 17:59:46 +02:00
Victor Stinner
28f468cb19
bpo-9566: Fix compiler warnings in pyexpat.c (GH-10654)
...
Explicit cast a pointer difference (intptr_t) to int to fix
two warnings on 64-bit Windows:
Modules\pyexpat.c(1181): warning C4244: 'initializing':
conversion from '__int64' to 'int', possible loss of data
Modules\pyexpat.c(1192): warning C4244: 'initializing':
conversion from '__int64' to 'int', possible loss of data
2018-11-22 13:21:43 +01:00
Serhiy Storchaka
55f8249d65
bpo-34741: Get rid of tp_getattro and tp_setattro in pyexpat.xmlparser. (GH-9422)
...
Use tp_members and tp_getset instead.
2018-10-19 18:00:51 +03:00
Zackery Spytz
68def052dc
Fix several reference counting bugs in pyexpat.c. (GH-9955)
2018-10-19 09:57:38 +03:00
Christian Heimes
cb5778f00c
bpo-34623: Use XML_SetHashSalt in _elementtree (GH-9146)
...
The C accelerated _elementtree module now initializes hash randomization
salt from _Py_HashSecret instead of libexpat's default CPRNG.
Signed-off-by: Christian Heimes <christian@python.org>
https://bugs.python.org/issue34623
2018-09-18 05:38:58 -07:00
Eric Snow
3f9eee6eb4
bpo-28411: Support other mappings in PyInterpreterState.modules. ( #3593 )
...
The concrete PyDict_* API is used to interact with PyInterpreterState.modules in a number of places. This isn't compatible with all dict subclasses, nor with other Mapping implementations. This patch switches the concrete API usage to the corresponding abstract API calls.
We also add a PyImport_GetModule() function (and some other helpers) to reduce a bunch of code duplication.
2017-09-15 16:35:20 -06:00
Eric Snow
93c92f7d1d
bpo-31404: Revert "remove modules from Py_InterpreterState ( #1638 )" ( #3565 )
...
PR #1638 , for bpo-28411, causes problems in some (very) edge cases. Until that gets sorted out, we're reverting the merge. PR #3506 , a fix on top of #1638 , is also getting reverted.
2017-09-13 23:46:04 -07:00
Eric Snow
86b7afdfee
bpo-28411: Remove "modules" field from Py_InterpreterState. ( #1638 )
...
sys.modules is the one true source.
2017-09-04 17:54:09 -06:00
Victor Stinner
23ec4b57e1
bpo-29591: Upgrade Modules/expat to libexpat 2.2 ( #2164 )
...
* bpo-29591: Upgrade Modules/expat to libexpat 2.2
* bpo-29591: Restore Python changes on expat
* bpo-29591: Remove expat config of unsupported platforms
Remove the configuration (Modules/expat/*config.h) of unsupported
platforms:
* Amiga
* MacOS Classic on PPC32
* Open Watcom
* bpo-29591: Remove useless XML_HAS_SET_HASH_SALT
The XML_HAS_SET_HASH_SALT define of Modules/expat/expat.h became
useless since our local expat copy was upgrade to expat 2.1 (it's now
expat 2.2.0).
2017-06-15 00:54:36 +02:00
Serhiy Storchaka
202fda55c2
bpo-24037: Add Argument Clinic converter `bool(accept={int})`. ( #485 )
2017-03-12 10:10:47 +02:00
Serhiy Storchaka
22e707fa04
bpo-29768: Fixed compile-time check for expat version. ( #574 )
2017-03-09 09:47:52 +02:00
Serhiy Storchaka
685c203e84
Removed redundant Argument Clinic directives.
2017-02-04 11:53:22 +02:00
Serhiy Storchaka
228b12edcc
Issue #28999 : Use Py_RETURN_NONE, Py_RETURN_TRUE and Py_RETURN_FALSE wherever
...
possible. Patch is writen with Coccinelle.
2017-01-23 09:47:21 +02:00
Victor Stinner
7bfb42d5b7
Issue #28858 : Remove _PyObject_CallArg1() macro
...
Replace
_PyObject_CallArg1(func, arg)
with
PyObject_CallFunctionObjArgs(func, arg, NULL)
Using the _PyObject_CallArg1() macro increases the usage of the C stack, which
was unexpected and unwanted. PyObject_CallFunctionObjArgs() doesn't have this
issue.
2016-12-05 17:04:32 +01:00
Victor Stinner
4778eab1f2
Replace PyObject_CallFunction() with fastcall
...
Replace
PyObject_CallFunction(func, "O", arg)
and
PyObject_CallFunction(func, "O", arg, NULL)
with
_PyObject_CallArg1(func, arg)
Replace
PyObject_CallFunction(func, NULL)
with
_PyObject_CallNoArg(func)
_PyObject_CallNoArg() and _PyObject_CallArg1() are simpler and don't allocate
memory on the C stack.
2016-12-01 14:51:04 +01:00
Serhiy Storchaka
3b73ea1278
Issue #28701 : Replace PyUnicode_CompareWithASCIIString with _PyUnicode_EqualToASCIIString.
...
The latter function is more readable, faster and doesn't raise exceptions.
2016-11-16 10:19:20 +02:00
Serhiy Storchaka
f4934ea77d
Issue #28701 : Replace PyUnicode_CompareWithASCIIString with _PyUnicode_EqualToASCIIString.
...
The latter function is more readable, faster and doesn't raise exceptions.
2016-11-16 10:17:58 +02:00
Christian Heimes
7a5457b687
Add error checking to PyInit_pyexpact
...
The module initializer of the pyexpat module failed to check
the return value of PySys_GetObject() for NULL.
CID 982779
2016-09-09 00:13:35 +02:00
Serhiy Storchaka
2954f83999
- Issue #27332 : Fixed the type of the first argument of module-level functions
...
generated by Argument Clinic. Patch by Petr Viktorin.
2016-07-07 18:20:03 +03:00
Serhiy Storchaka
1a2b24f02d
Issue #27332 : Fixed the type of the first argument of module-level functions
...
generated by Argument Clinic. Patch by Petr Viktorin.
2016-07-07 17:35:15 +03:00
Serhiy Storchaka
ec39756960
Issue #22570 : Renamed Py_SETREF to Py_XSETREF.
2016-04-06 09:50:03 +03:00
Serhiy Storchaka
1ed017ae92
Issue #20440 : Cleaning up the code by using Py_SETREF and Py_CLEAR.
...
Old code is correct, but with Py_SETREF and Py_CLEAR it can be cleaner.
This patch doesn't fix bugs and hence there is no need to backport it.
2015-12-27 15:51:32 +02:00
Serhiy Storchaka
ef1585eb9a
Issue #25923 : Added more const qualifiers to signatures of static and private functions.
2015-12-25 20:01:53 +02:00
Serhiy Storchaka
fad85aadb0
Issue #25558 : Use compile-time asserts.
2015-11-07 15:42:38 +02:00
Serhiy Storchaka
6c8b66cd26
Raise more correct exception on overflow in setting buffer_size attribute of
...
expat parser.
2015-09-07 22:54:08 +03:00
Serhiy Storchaka
de5f9f4f70
Raise more correct exception on overflow in setting buffer_size attribute of
...
expat parser.
2015-09-07 22:51:56 +03:00
Serhiy Storchaka
3b1bc7828d
Issue #25019 : Fixed a crash caused by setting non-string key of expat parser.
...
Added additional tests for expat parser attributes.
Based on patch by John Leitch.
2015-09-07 22:38:34 +03:00
Serhiy Storchaka
931331a328
Issue #25019 : Fixed a crash caused by setting non-string key of expat parser.
...
Added additional tests for expat parser attributes.
Based on patch by John Leitch.
2015-09-07 22:37:02 +03:00
Serhiy Storchaka
8b2e8b6cce
Specify default values of semantic booleans in Argument Clinic generated signatures as booleans.
2015-05-30 11:30:39 +03:00
Larry Hastings
dbfdc380df
Issue #24001 : Argument Clinic converters now use accept={type}
...
instead of types={'type'} to specify the types the converter accepts.
2015-05-04 06:59:46 -07:00
Larry Hastings
89964c48d1
Issue #23944 : Argument Clinic now wraps long impl prototypes at column 78.
2015-04-14 18:07:59 -04:00
Serhiy Storchaka
1009bf18b3
Issue #23501 : Argumen Clinic now generates code into separate files by default.
2015-04-03 23:53:51 +03:00
Victor Stinner
f024d263b4
Issue #23685 : Fix usage of PyMODINIT_FUNC in _json, _scproxy, nis, pyexpat
...
_codecs_cn, _codecs_hk, _codecs_iso2022, _codecs_jp, _codecs_kr and _codecs_tw
modules.
pyexpat.c doesn't need to redeclare PyMODINIT_FUNC, it's already declared in
Include/pyport.h.
2015-03-17 17:48:27 +01:00
Serhiy Storchaka
4d0d982985
Issue #23446 : Use PyMem_New instead of PyMem_Malloc to avoid possible integer
...
overflows. Added few missed PyErr_NoMemory().
2015-02-16 13:33:32 +02:00
Serhiy Storchaka
1a1ff29659
Issue #23446 : Use PyMem_New instead of PyMem_Malloc to avoid possible integer
...
overflows. Added few missed PyErr_NoMemory().
2015-02-16 13:28:22 +02:00
Antoine Pitrou
94262ebc9c
Issue #22462 : Fix pyexpat's creation of a dummy frame to make it appear in exception tracebacks.
...
Initial patch by Mark Shannon.
2014-10-08 20:02:40 +02:00
Antoine Pitrou
0ddbf4795f
Issue #22462 : Fix pyexpat's creation of a dummy frame to make it appear in exception tracebacks.
...
Initial patch by Mark Shannon.
2014-10-08 20:00:09 +02:00
Serhiy Storchaka
20b39b27d9
Removed redundant casts to `char *`.
...
Corresponding functions now accept `const char *` (issue #1772673 ).
2014-09-28 11:27:24 +03:00
Brett Cannon
d0aeda8f0f
Issue #20152 : Port pyexpat to Argument Clinic.
...
Could not emit an external file as pyexpat has a conditionally built
method which Clinic won't hide otherwise.
2014-08-22 14:23:20 -04:00
Ned Deily
e7d532fbc9
Issue #6676 : Ensure a meaningful exception is raised when attempting
...
to parse more than one XML document per pyexpat xmlparser instance.
(Original patches by Hirokazu Yamamoto and Amaury Forgeot d'Arc, with
suggested wording by David Gutteridge)
2014-03-27 16:39:58 -07:00
Serhiy Storchaka
dfe98a102e
Issue #20437 : Fixed 22 potential bugs when deleting objects references.
2014-02-09 13:46:20 +02:00
Serhiy Storchaka
505ff755d7
Issue #20437 : Fixed 21 potential bugs when deleting objects references.
2014-02-09 13:33:53 +02:00
Christian Heimes
ba723200ce
silence an overflow warning. slen is smaller than 1MB
2013-11-22 00:46:18 +01:00
Christian Heimes
985ecdcfc2
ssue #19183 : Implement PEP 456 'secure and interchangeable hash algorithm'.
...
Python now uses SipHash24 on all major platforms.
2013-11-20 11:46:18 +01:00
Christian Heimes
603bd2d374
Check return value of PyEval_GetGlobals() for NULL
...
CID 486814
2013-07-20 22:54:39 +02:00
Christian Heimes
a6404ad43c
Check return value of PyEval_GetGlobals() for NULL
...
CID 486814
2013-07-20 22:54:25 +02:00
Christian Heimes
5df8ff01d9
Check return value of flush_character_buffer()
...
CID 486663
2013-07-20 22:42:06 +02:00
Christian Heimes
09994a9c59
Check return value of flush_character_buffer()
...
CID 486663
2013-07-20 22:41:58 +02:00
Victor Stinner
9e09c26e8a
Issue #18501 , #18408 : Fix expat handlers in pyexpat, don't call Python
...
functions if a Python exception was raised
2013-07-18 23:17:01 +02:00
Victor Stinner
54b2d2ec69
Issue #18408 : Fix pyexpat.ParserCreate()
...
Check if XML_ParserCreate_MM() failed (ex: MemoryError) before using
self->itself.
2013-07-15 17:15:57 +02:00
Christian Heimes
fa535f5220
Issue #18227 : pyexpat now uses a static XML_Memory_Handling_Suite. cElementTree uses the same approach since at least Python 2.6
2013-07-07 17:35:11 +02:00
Victor Stinner
b64049183c
Issue #18203 : Replace malloc() with PyMem_Malloc() in Python modules
...
Replace malloc() with PyMem_Malloc() when the GIL is held, or with
PyMem_RawMalloc() otherwise.
2013-07-07 16:21:41 +02:00
Christian Heimes
721724270d
Fix segfault in pyexpat.c caused by 84375
...
u can be NULL, use XDECREF
2013-06-29 21:49:27 +02:00
Christian Heimes
b582155789
Fix memory leak in pyexpat PyUnknownEncodingHandler
...
CID 1040367 (#1 of 1): Resource leak (RESOURCE_LEAK)
leaked_storage: Variable u going out of scope leaks the storage it points to.
2013-06-29 20:43:13 +02:00
Eli Bendersky
6dc32b34dd
Issue #13612 : handle unknown encodings without a buffer overflow.
...
This affects pyexpat and _elementtree. PyExpat_CAPI now exposes a new
function - DefaultUnknownEncodingHandler.
Based on a patch by Serhiy Storchaka.
2013-05-25 05:25:48 -07:00
Serhiy Storchaka
66d53fa9ad
Issue #16986 : ElementTree now correctly parses a string input not only when
...
an internal XML encoding is UTF-8 or US-ASCII.
2013-05-22 17:07:51 +03:00
Serhiy Storchaka
36b365ccff
Issue #17089 : Expat parser now correctly works with string input not only when
...
an internal XML encoding is UTF-8 or US-ASCII. It now accepts bytes and
strings larger than 2 GiB.
2013-02-04 18:28:01 +02:00
Serhiy Storchaka
43536e9e37
Issue #17089 : Expat parser now correctly works with string input not only when
...
an internal XML encoding is UTF-8 or US-ASCII. It now accepts bytes and
strings larger than 2 GiB.
2013-02-04 18:26:15 +02:00
Georg Brandl
d37b9d7e1b
Port #16012 fix: parameter parsing regression in pyexpat parser UseForeignDTD() method.
2012-09-24 13:41:52 +02:00
Antoine Pitrou
721738fbee
Issue #15604 : Update uses of PyObject_IsTrue() to check for and handle errors correctly.
...
Patch by Serhiy Storchaka.
2012-08-15 23:20:39 +02:00
Antoine Pitrou
6f430e4963
Issue #15604 : Update uses of PyObject_IsTrue() to check for and handle errors correctly.
...
Patch by Serhiy Storchaka.
2012-08-15 23:18:25 +02:00
Christian Heimes
e26d3af7ee
Issue #16012 : Fix a regression in pyexpat. The parser's UseForeignDTD()
...
method doesn't require an argument again.
2012-09-24 13:17:08 +02:00
Eli Bendersky
2b6b73e7e1
Issue #14007 : implement doctype() method calling in XMLParser of _elementtree.
...
Includes exposing a doctype handler from expat through pyexpat.
2012-06-01 11:32:34 +03:00
Gregory P. Smith
c362cbda97
Fixes Issue 14234: fix for the previous commit, keep compilation when
...
using --with-system-expat working when the system expat does not have
salted hash support.
2012-03-14 18:11:46 -07:00
Gregory P. Smith
2522771e47
Fixes Issue 14234: fix for the previous commit, keep compilation when
...
using --with-system-expat working when the system expat does not have
salted hash support.
2012-03-14 18:10:37 -07:00
Gregory P. Smith
70c9c4dca6
Fixes Issue #14234 : CVE-2012-0876: Randomize hashes of xml attributes
...
in the hash table internal to the pyexpat module's copy of the expat
library to avoid a denial of service due to hash collisions.
Patch by David Malcolm with some modifications by the expat project.
2012-03-14 15:00:39 -07:00
Gregory P. Smith
373c740924
Fixes Issue #14234 : CVE-2012-0876: Randomize hashes of xml attributes
...
in the hash table internal to the pyexpat module's copy of the expat
library to avoid a denial of service due to hash collisions.
Patch by David Malcolm with some modifications by the expat project.
2012-03-14 14:41:00 -07:00
Gregory P. Smith
8e91cf6a5e
Fixes issue #14234 : CVE-2012-0876: Randomize hashes of xml attributes
...
in the hash table internal to the pyexpat module's copy of the expat
library to avoid a denial of service due to hash collisions.
Patch by David Malcolm with some modifications by the expat project.
2012-03-14 14:26:55 -07:00
Martin v. Löwis
bd928fef42
Rename _Py_identifier to _Py_IDENTIFIER.
2011-10-14 10:20:37 +02:00
Martin v. Löwis
1ee1b6fe0d
Use identifier API for PyObject_GetAttrString.
2011-10-10 18:11:30 +02:00
Victor Stinner
9e5bd6c544
pyexat uses the new Unicode API
2011-10-01 01:05:40 +02:00
Martin v. Löwis
d63a3b8beb
Implement PEP 393.
2011-09-28 07:41:54 +02:00
Benjamin Peterson
fdb2d909a4
merge 3.1
2011-05-31 21:38:49 -05:00
Benjamin Peterson
52e61449e3
return NULL on error
2011-05-31 21:38:15 -05:00
Benjamin Peterson
8c6f88efa2
remove __version__s dependent on subversion keyword expansion ( closes #12221 )
2011-05-31 20:52:17 -05:00
Benjamin Peterson
9e3e1c6e4e
merge 3.2 ( #12221 )
2011-05-31 19:07:45 -05:00
Benjamin Peterson
0aa71f7982
merge 3.1 ( #12221 )
2011-05-31 19:06:17 -05:00
Benjamin Peterson
a22c98de85
simply use the Python version for pyexpat.__version__ #12221
2011-05-31 18:59:49 -05:00
Ezio Melotti
d60b74cb66
Merge with 3.2.
2011-04-11 03:51:14 +03:00
Ezio Melotti
fdb2df49bd
Remove unnecessary call to PyErr_Clear.
2011-04-11 03:48:57 +03:00
Victor Stinner
499dfcf29d
Issue #10833 : Use PyUnicode_FromFormat() and PyErr_Format() instead of
...
PyOS_snprintf().
2011-03-21 13:26:24 +01:00
Victor Stinner
95f1dfc955
Issue #9566 : Fix pyparse.xmlparser.ParseFile()
...
Fix readinst() if file.read(n) returns a bytes object longer than n:
return -1 instead of the the buffer size to raise an exception.
Simplify also the function code.
2011-01-10 23:00:36 +00:00
Victor Stinner
9d6f9367ea
Issue #9566 : PyUnicode_FromFormatV() doesn't support %zi, use %zd instead
2011-01-04 22:00:04 +00:00
Victor Stinner
ed7e222454
Issue #9566 : explain why (int)len cannot underflow
2011-01-04 21:58:10 +00:00
Victor Stinner
0fcab4a3ed
Issue #9566 : use Py_ssize_t instead of int
2011-01-04 12:59:15 +00:00
Antoine Pitrou
23683ef26d
Issue #10333 : Remove ancient GC API, which has been deprecated since
...
Python 2.2.
2011-01-04 00:00:31 +00:00
Alexander Belopolsky
e239d23e8c
Issue #6697 : Fixed instances of _PyUnicode_AsString() result not checked for NULL
2010-12-08 23:31:48 +00:00
Georg Brandl
5bbbf1d9f9
Merged revisions 85536 via svnmerge from
...
svn+ssh://svn.python.org/python/branches/py3k
........
r85536 | georg.brandl | 2010-10-15 18:26:08 +0200 (Fr, 15 Okt 2010) | 1 line
#9054 : fix crash when using pyexpat with a system expat lib version 2.0.1.
........
2010-10-24 14:20:36 +00:00
Georg Brandl
c01537f742
#9054 : fix crash when using pyexpat with a system expat lib version 2.0.1.
2010-10-15 16:26:08 +00:00
Georg Brandl
b4dac71a87
#5355 : Provide mappings from Expat error numbers to string descriptions and backwards, in order to actually make it possible to analyze error codes provided by ExpatError.
2010-10-15 14:46:48 +00:00
Georg Brandl
5e1fdacc36
Remove compatibility code for Python < 2.1, < 2.2 and < 2.4.
2010-09-11 06:41:30 +00:00
Victor Stinner
b4ba986a71
Issue #9402 : pyexpat uses Py_DECREF() instead of PyObject_DEL()
...
Fix a crash if Python is compiled in pydebug mode.
2010-09-10 22:25:19 +00:00
Benjamin Peterson
4e7f285252
remove dead code #9292
2010-08-08 16:54:58 +00:00
Antoine Pitrou
7f14f0d8a0
Recorded merge of revisions 81032 via svnmerge from
...
svn+ssh://pythondev@svn.python.org/python/branches/py3k
................
r81032 | antoine.pitrou | 2010-05-09 17:52:27 +0200 (dim., 09 mai 2010) | 9 lines
Recorded merge of revisions 81029 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r81029 | antoine.pitrou | 2010-05-09 16:46:46 +0200 (dim., 09 mai 2010) | 3 lines
Untabify C files. Will watch buildbots.
........
................
2010-05-09 16:14:21 +00:00