Commit Graph

2707 Commits

Author SHA1 Message Date
Martin v. Löwis 73c01d4101 Added checks for integer overflows, contributed by Google. Some are
only available if asserts are left in the code, in cases where they
can't be triggered from Python code.
2008-02-14 11:26:18 +00:00
Thomas Wouters 6bf585e753 Fix typo in constant name. 2008-01-25 21:08:41 +00:00
Thomas Wouters d92272e4a9 Use the right (portable) definition of the max of a Py_ssize_t. 2008-01-25 19:51:24 +00:00
Guido van Rossum ee6bab06d3 Rewrite the list_inline_repeat overflow check slightly differently. 2008-01-25 19:42:36 +00:00
Guido van Rossum 1859f5b4d2 Backport r60246.
Fix issue #1303614, test67.py.
2008-01-24 17:59:56 +00:00
Guido van Rossum 03706d2db0 Backport r55080:
Fix for #1303614 and #1174712:
- __dict__ descriptor abuse for subclasses of built-in types
- subclassing from both ModuleType and another built-in types
2008-01-18 21:31:32 +00:00
Guido van Rossum d187381b81 Fix an edge case whereby the __del__() method of a classic class could
create a new weakref to the object.
2008-01-18 20:53:37 +00:00
Christian Heimes 03acd85dbf merge -r59315:59316 from py3k: Fix issue #1553: An errornous __length_hint__ can make list() raise a SystemError 2007-12-05 12:51:23 +00:00
Georg Brandl a5463ab7de Spaces vs. Tabs.
(backport from rev. 59224)
2007-11-29 18:33:04 +00:00
Guido van Rossum dbe97b38be Fix bug #1517, a possible segfault in lookup(). 2007-11-29 18:23:48 +00:00
Amaury Forgeot d'Arc 30f61cbb13 Issue #1445: Fix a SystemError when accessing the ``cell_contents``
attribute of an empty cell object.  Now a ValueError is raised.

Backport of r59170.
2007-11-24 13:53:29 +00:00
Guido van Rossum 809123c61f Issue 1704621. Fix segfaults in list_repeat() and list_inplace_repeat().
The C changes aren't quite the same as the patch given there; the test is.
2007-11-12 20:04:41 +00:00
Guido van Rossum e6a6f39cc7 Backport r58892.
Add missing "return NULL" in overflow check in PyString_Repr().
2007-11-07 01:19:49 +00:00
Georg Brandl 1dcb9c93fd Backport r58709 from trunk:
Backport fixes for the code that decodes octal escapes (and for PyString
also hex escapes) -- this was reaching beyond the end of the input string
buffer, even though it is not supposed to be \0-terminated.
This has no visible effect but is clearly the correct thing to do.
(In 3.0 it had a visible effect after removing ob_sstate from PyString.)
Also fixes #1098.
2007-11-02 22:46:38 +00:00
Brett Cannon 13bfa3a97b Cause passing a string to generator.throw() to raise a deprecation warning. 2007-09-11 21:12:14 +00:00
Georg Brandl b4d100cf2d Bug #1763149: use proper slice syntax in docstring.
(backport)
2007-07-29 17:37:22 +00:00
Georg Brandl c5db923994 Patch #1673759: add a missing overflow check when formatting floats
with %G.
 (backport from rev. 56298)
2007-07-12 08:38:04 +00:00
Neal Norwitz 8355dd5806 Backport 55874:
Fix a bug when there was a newline in the string expandtabs was called on.
This also catches another condition that can overflow.
2007-06-11 04:32:41 +00:00
Neal Norwitz 66e64e2b6a Prevent expandtabs() on string and unicode objects from causing a segfault when
a large width is passed on 32-bit platforms.  Found by Google.

It would be good for people to review this especially carefully and verify
I don't have an off by one error and there is no other way to cause overflow.
2007-06-09 04:06:30 +00:00
Martin v. Löwis 897704d1dd Bug #1733488: Fix compilation of bufferobject.c on AIX. 2007-06-08 17:29:40 +00:00
Neal Norwitz 5ece2fb0d1 Add what looks like a necessary call to PyErr_NoMemory() when PyMem_MALLOC()
fails.
2007-05-16 04:35:11 +00:00
Kristján Valur Jónsson a1392d5ace Merge change 54982 from the trunk. This fixes the test_subprocess test in the testsuite for VisualStudio2005 builds, by "sanitizing" the "mode" that is used in the posixmodule's fdopen(). In particular the non-standard "U" mode character is removed. 2007-05-07 19:25:38 +00:00
Kristján Valur Jónsson dffe9a214b the nb_long slot on classobject instances now defaults to call the nb_int slot member if there is no __long__ attribute found. This is in accordance with a suggestion from Armin Rigo, and allows the test_getargs2.py test in the testsuite for x64 2007-05-07 18:36:39 +00:00
Kristján Valur Jónsson f4601d874f Fix two problems that emerged when the testsuite was run with an x64 build: PyLong_FromSSize_t incorrectly assumed an unsigned object, and itertools.count() had the wrong upper limit for the iterator. 2007-05-07 18:30:48 +00:00
Georg Brandl 1dfa8ac6f1 Backport r54757 - missing NULL checks. 2007-04-21 07:22:57 +00:00
Raymond Hettinger 87b5d9196e Revert 53667 2007-04-18 02:02:15 +00:00
Neal Norwitz e6e383f498 Revert SF #1615701 (rev 53655): dict.update() does *not* call __getitem__() or
keys() if subclassed.  This is to remain consistent with 2.5.

See discussion here:
  http://mail.python.org/pipermail/python-dev/2007-April/072565.html
2007-04-16 06:59:13 +00:00
Neal Norwitz 03c566a268 Revert 54813 for 2.5.1 release. Can be applied after 2.5 branch is unfrozen. 2007-04-16 06:19:52 +00:00
Kristján Valur Jónsson 9d9fbb4359 Fix a bug when using the __lltrace__ opcode tracer, and a problem sith signed chars in frameobject.c which can occur with opcodes > 127 2007-04-13 22:09:59 +00:00
Raymond Hettinger 7ed0a65831 Test and fix fromkeys optional argument. 2007-03-21 20:36:45 +00:00
Raymond Hettinger f94e89c578 Extend work on rev 52962 and 53830 eliminating redundant PyObject_Hash() calls and fixing set/dict interoperability. 2007-03-20 21:45:04 +00:00
Žiga Seilnacht c1b4e8e6e2 Patch #1462488: prevent a segfault in object_reduce_ex() by splitting
the implementation for __reduce__ and __reduce_ex__ into two separate
functions. Fixes bug #931877.
 (backport from rev. 54397)
2007-03-15 11:47:59 +00:00
Žiga Seilnacht 94c887258c Patch #1680015: Don't modify __slots__ tuple if it contains an unicode
name. Remove a reference leak that happened if the name could not be
converted to string.
 (backport from rev. 54378)
2007-03-14 12:34:30 +00:00
Žiga Seilnacht ad3d2c2fe4 Patch #1675981: remove unreachable code from type.__new__() method.
__dict__ and __weakref__ are removed from the slots tuple earlier
in the code, in the loop that mangles slot names.
 (backport from rev. 54270)
2007-03-11 16:01:51 +00:00
Neal Norwitz e7881559f2 Fix SF #1676971, Complex OverflowError has a typo 2007-03-09 06:01:28 +00:00
Georg Brandl ffb0a804c6 Patch #1638879: don't accept strings with embedded NUL bytes in long().
(backport from rev. 54173)
2007-03-06 18:44:35 +00:00
Georg Brandl 5f795865da Backport from Py3k branch: fix refleak in PyString_Format.
(backport from rev. 53935)
2007-02-26 13:51:34 +00:00
Raymond Hettinger d621a6e8dc Fixup set/dict interoperability. 2007-02-19 20:45:46 +00:00
Raymond Hettinger 1bff796983 Extend work on revision 52962: Eliminate redundant calls to PyObject_Hash(). 2007-02-19 03:04:45 +00:00
Martin v. Löwis b4af42a635 Bug #1653736: Properly discard third argument to slot_nb_inplace_power. 2007-02-09 12:19:46 +00:00
Raymond Hettinger fdf7bf8305 Bypass set specific optimizations for set and frozenset subclasses. 2007-02-08 00:49:51 +00:00
Raymond Hettinger 9f0e1ea964 Do not let overflows in enumerate() and count() pass silently. 2007-02-07 23:57:05 +00:00
Raymond Hettinger bbe92887ce Silence compiler warning 2007-02-07 23:48:15 +00:00
Raymond Hettinger 127ef44c7b Bug #1575169: operator.isSequenceType() now returns False for subclasses of dict. 2007-02-07 22:12:01 +00:00
Raymond Hettinger 20dcf1cb9d SF #1615701: make d.update(m) honor __getitem__() and keys() in dict subclasses 2007-02-07 20:01:28 +00:00
Raymond Hettinger 21191f4f0c Bug #1648179: set.update() not recognizing __iter__ overrides in dict subclasses. 2007-02-01 21:01:21 +00:00
Brett Cannon 75ba075110 If you created a weakref in an object's __del__ method to itself it would
segfault the interpreter during weakref clean up.  Now any new weakrefs created
after __del__ is run are removed silently.

Fixes bug #1377858 and the weakref_in_del crasher for new-style classes.
Classic classes are still affected.
2007-01-23 22:41:20 +00:00
Thomas Wouters e471317a08 Backport trunk revision 53527:
SF patch #1630975: Fix crash when replacing sys.stdout in sitecustomize

When running the interpreter in an environment that would cause it to set
stdout/stderr/stdin's encoding, having a sitecustomize that would replace
them with something other than PyFile objects would crash the interpreter.
Fix it by simply ignoring the encoding-setting for non-files.

This could do with a test, but I can think of no maintainable and portable
way to test this bug, short of adding a sitecustomize.py to the buildsystem
and have it always run with it (hmmm....)
2007-01-23 13:54:30 +00:00
Raymond Hettinger 535989ecb6 SF #1486663 -- Allow keyword args in subclasses of set() and frozenset(). 2007-01-11 18:21:04 +00:00
Raymond Hettinger 9cdf70399f For sets with cyclical reprs, emit '...' instead of recursing. 2006-12-29 18:49:13 +00:00