Neal Norwitz
4f3be8a0a9
Security patches from Apple: prevent int overflow when allocating memory
2008-07-31 17:08:14 +00:00
Antoine Pitrou
c8e4bed1c5
#2242 : utf7 decoding crashes on bogus input on some Windows/MSVC versions
2008-07-25 19:00:48 +00:00
Amaury Forgeot d'Arc
a79e05097b
#1477 : ur'\U0010FFFF' used to raise in narrow unicode builds.
...
Corrected the raw-unicode-escape codec to use UTF-16 surrogates in
this case, like the unicode-escape codec does.
Backport of r61793 and r61853
2008-03-24 21:16:28 +00:00
Neal Norwitz
b3635f99a2
Backport r61458:
...
Issue 2321: reduce memory usage (increase the memory that is returned
to the system) by using pymalloc for the data of unicode objects.
2008-03-18 04:17:36 +00:00
Guido van Rossum
44a93e54f4
Fix the overflows in expandtabs(). "This time for sure!"
...
(Exploit at request.)
2008-03-11 21:14:54 +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
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
Armin Rigo
4b63c21d6f
Forward-port of r52136: a review of overflow-detecting code.
...
* unified the way intobject, longobject and mystrtoul handle
values around -sys.maxint-1.
* in general, trying to entierely avoid overflows in any computation
involving signed ints or longs is extremely involved. Fixed a few
simple cases where a compiler might be too clever (but that's all
guesswork).
* more overflow checks against bad data in marshal.c.
* 2.5 specific: fixed a number of places that were still confusing int
and Py_ssize_t. Some of them could potentially have caused
"real-world" breakage.
* list.pop(x): fixing overflow issues on x was messy. I just reverted
to PyArg_ParseTuple("n"), which does the right thing. (An obscure
test was trying to give a Decimal to list.pop()... doesn't make
sense any more IMHO)
* trying to write a few tests...
2006-10-04 11:44:06 +00:00
Neal Norwitz
29a5fdb7ca
Fix str.rpartition(sep) when sep is not found in str.
...
Partially from SF patch #1551339 , but also taken from head.
2006-09-05 02:21:38 +00:00
Neal Norwitz
19c35bba5d
- Patch #1541585 : fix buffer overrun when performing repr() on
...
a unicode string in a build with wide unicode (UCS-4) support.
I will forward port to 2.6. Can someone backport to 2.4?
2006-08-21 22:13:11 +00:00
Marc-André Lemburg
3a457790c7
Correct an accidentally removed previous patch.
2006-08-14 12:57:27 +00:00
Marc-André Lemburg
040f76b79c
Slightly revised version of patch #1538956 :
...
Replace UnicodeDecodeErrors raised during == and !=
compares of Unicode and other objects with a new
UnicodeWarning.
All other comparisons continue to raise exceptions.
Exceptions other than UnicodeDecodeErrors are also left
untouched.
2006-08-14 10:55:19 +00:00
Neal Norwitz
8a87f5d37e
Patch #1538606 , Patch to fix __index__() clipping.
...
I modified this patch some by fixing style, some error checking, and adding
XXX comments. This patch requires review and some changes are to be expected.
I'm checking in now to get the greatest possible review and establish a
baseline for moving forward. I don't want this to hold up release if possible.
2006-08-12 17:03:09 +00:00
Neal Norwitz
e1fdb32ff2
Handle allocation failures gracefully. Found with failmalloc.
...
Many (all?) of these could be backported.
2006-07-21 05:32:28 +00:00
Martin v. Löwis
d825143be1
Patch #1455898 : Incremental mode for "mbcs" codec.
2006-06-14 05:21:04 +00:00
Neal Norwitz
de4c78a1d7
Initialize the type object so pychecker can't crash the interpreter.
2006-06-13 08:28:19 +00:00
Georg Brandl
90e27d38f5
Apply perky's fix for #1503157 : "/".join([u"", u""]) raising OverflowError.
...
Also improve error message on overflow.
2006-06-10 06:40:50 +00:00
Georg Brandl
242508160e
RFE #1491485 : str/unicode.endswith()/startswith() now accept a tuple as first argument.
2006-06-09 18:45:48 +00:00
Georg Brandl
9f16760666
Repair refleaks in unicodeobject.
2006-06-04 21:46:16 +00:00
Martin v. Löwis
3f767795f6
Patch #1359618 : Speed-up charmap encoder.
2006-06-04 19:36:28 +00:00
Fredrik Lundh
60d8b18831
needforspeed: stringlib refactoring: changed find_obj to find_slice,
...
to enable use from stringobject
2006-05-27 15:20:22 +00:00
Fredrik Lundh
c2d29c5a6d
needforspeed: replace improvements, changed to Py_LOCAL_INLINE
...
where appropriate
2006-05-27 14:58:20 +00:00
Martin v. Löwis
2e3f6b77d5
Revert bogus change committed in 46432 to this file.
2006-05-27 11:07:49 +00:00
Andrew Dalke
e0df762719
fixed typo
2006-05-27 11:04:36 +00:00
Fredrik Lundh
2d23d5bf2e
needforspeed: more stringlib refactoring
2006-05-27 10:05:10 +00:00
Martin v. Löwis
d004fc810a
Patch 1494554: Update numeric properties to Unicode 4.1.
2006-05-27 08:36:52 +00:00
Neal Norwitz
d1b6cd7bfb
Fix Coverity warnings.
...
- Check the correct variable (str_obj, not str) for NULL
- sep_len was already verified it wasn't 0
2006-05-27 05:21:30 +00:00
Andrew M. Kuchling
07bbfc6a51
Comment typo
2006-05-26 19:51:10 +00:00
Fredrik Lundh
e6e43c867d
needforspeed: stringlib refactoring: use stringlib/find for string find
2006-05-26 19:48:07 +00:00
Fredrik Lundh
c816281304
needforspeed: use a macro to fix slice indexes
2006-05-26 19:33:03 +00:00
Fredrik Lundh
ce4eccb0c4
needforspeed: stringlib refactoring: use stringlib/find for unicode
...
find
2006-05-26 19:29:05 +00:00
Fredrik Lundh
58b5e84d52
needforspeed: stringlib refactoring, continued. added count and
...
find helpers; updated unicodeobject to use stringlib_count
2006-05-26 19:24:53 +00:00
Fredrik Lundh
9c0e9c089c
needspeed: rpartition documentation, tests, and a bug fixes.
...
feel free to add more tests and improve the documentation.
2006-05-26 18:24:15 +00:00
Fredrik Lundh
b3167cbcd7
needforspeed: added rpartition implementation
2006-05-26 18:15:38 +00:00
Fredrik Lundh
b947948c61
needforspeed: stringlib refactoring (in progress)
2006-05-26 17:22:38 +00:00
Fredrik Lundh
a50d201bd9
needforspeed: stringlib refactoring (in progress)
2006-05-26 17:04:58 +00:00
Fredrik Lundh
95e2a91615
use Py_LOCAL also for string and unicode objects
2006-05-26 11:38:15 +00:00
Fredrik Lundh
f2c0dfdb13
needforspeed: use Py_ssize_t for the fastsearch counter and skip
...
length (thanks, neal!). and yes, I've verified that this doesn't
slow things down ;-)
2006-05-26 10:27:17 +00:00
Fredrik Lundh
450277fef5
needforspeed: use METH_O for argument handling, which made partition some
...
~15% faster for the current tests (which is noticable faster than a corre-
sponding find call). thanks to neal-who-never-sleeps for the tip.
2006-05-26 09:46:59 +00:00
Fredrik Lundh
06a69dd8ff
needforspeed: partition implementation, part two.
...
feel free to improve the documentation and the docstrings.
2006-05-26 08:54:28 +00:00
Andrew Dalke
b552c4d848
Code had returned an ssize_t, upcast to long, then converted with PyInt_FromLong.
...
Now using PyInt_FromSsize_t.
2006-05-25 18:03:25 +00:00
Fredrik Lundh
0c71f88fc9
needforspeed: check for overflow in replace (from Andrew Dalke)
2006-05-25 16:46:54 +00:00
Fredrik Lundh
347ee277aa
needforspeed: refactored the replace code slightly; special-case
...
constant-length changes; use fastsearch to locate the first match.
2006-05-24 16:35:18 +00:00
Fredrik Lundh
d5e0dc51cf
needforspeedindeed: use fastsearch also for __contains__
2006-05-24 15:11:01 +00:00
Fredrik Lundh
6471ee4f18
needforspeed: use "fastsearch" for count and findstring helpers. this
...
results in a 2.5x speedup on the stringbench count tests, and a 20x (!)
speedup on the stringbench search/find/contains test, compared to 2.5a2.
for more on the algorithm, see:
http://effbot.org/zone/stringlib.htm
if you get weird results, you can disable the new algoritm by undefining
USE_FAST in Objects/unicodeobject.c.
enjoy /F
2006-05-24 14:28:11 +00:00
Fredrik Lundh
240bf2a8e4
use Py_ssize_t for string indexes (thanks, neal!)
2006-05-24 10:20:36 +00:00
Fredrik Lundh
7763351808
return 0 on misses, not -1.
2006-05-23 19:47:35 +00:00