- 28 Jun, 2000 40 commits
-
-
Guido van Rossum authored
This patch fixes a problem on AIX with the signed int case code in getargs.c, after Trent Mick's intervention about MIN/MAX overflow checks. The AIX compiler/optimizer generates bogus code with the default flags "-g -O" causing test_builtin to fail: int("10", 16) <> 16L. Swapping the two checks in the signed int code makes the problem go away. Also, make the error messages fit in 80 char lines in the source.
-
Guido van Rossum authored
Avoid calling the dealloc function, previously triggered with DECREF(inst). This caused a segfault in PyDict_GetItem, called with a NULL dict, whenever inst->in_dict fails under low-memory conditions.
-
Guido van Rossum authored
The depth field was never decremented inside w_object(), and it was never initialized in PyMarshal_WriteObjectToFile(). This caused imports from .pyc files to fil mysteriously when the .pyc file was written by the broken code -- w_object() would bail out early, but PyMarshal_WriteObjectToFile() doesn't check the error or return an error code, and apparently the marshalling code doesn't call PyErr_Check() either. (That's a separate patch if I feel like it.)
-
Guido van Rossum authored
mislabeled. (Using -c and then -e rearranges some comments, so I won't check that in -- but it's a good test anyway. Note that pindent is not perfect -- e.g. it doesn't know about triple-quoted strings!)
-
Guido van Rossum authored
Problem: A Python program can be completed and reformatted using Tools/scripts/pindent.py. Unfortunately there is no option for removal of the generated "# end"-tags. Although a few Python commands or a "grep -v '# end '" can do wonders here, there are two drawbacks: - not everyone has grep/time to write a Python script - it is not checked whether the "# end"-tags were used validly Solution: add extra option "-e" (eliminate) to pindent.py
-
Guido van Rossum authored
Fix warnings on 64-bit build build of signalmodule.c - Though I know that SIG_DFL and SIG_IGN are just small constants, there are cast to function pointers so the appropriate Python call is PyLong_FromVoidPtr so that the pointer value cannot overflow on Win64 where sizeof(long) < sizeof(void*).
-
Guido van Rossum authored
This patch fixes cPickle.c for 64-bit platforms. - The false assumption sizeof(long) == size(void*) exists where PyInt_FromLong is used to represent a pointer. The safe Python call for this is PyLong_FromVoidPtr. (On platforms where the above assumption *is* true a PyInt is returned as before so there is no effective change.) - use size_t instead of int for some variables
-
Guido van Rossum authored
-
Fred Drake authored
-
Fred Drake authored
-
Fred Drake authored
-
Fred Drake authored
-
Guido van Rossum authored
tests.
-
Fred Drake authored
-
Fred Drake authored
-
Guido van Rossum authored
-
Jack Jansen authored
-
Jack Jansen authored
-
Jack Jansen authored
-
Guido van Rossum authored
-
Jack Jansen authored
-
Fred Drake authored
Added an example of using an HTTP POST request.
-
Guido van Rossum authored
-
Guido van Rossum authored
-
Guido van Rossum authored
-
Guido van Rossum authored
-
Guido van Rossum authored
-
Guido van Rossum authored
fromfile(), to hold fread() result.)
-
Guido van Rossum authored
to hold strlen() outcome).
-
Guido van Rossum authored
This patches fixes a possible overflow of the optional timeout parameter for the select() function (selectmodule.c). This timeout is passed in as a double and then truncated to an int. If the double is sufficiently large you can get unexpected results as it overflows. This patch raises an overflow if the given select timeout overflows. [GvR: To my embarrassment, the original code was assuming an int could always hold a million. Note that the overflow check doesn't test for a very large *negative* timeout passed in -- but who in the world would do such a thing?]
-
Guido van Rossum authored
Various small fixes to the builtin module to ensure no buffer overflows. - chunk #1: Proper casting to ensure no truncation, and hence no surprises, in the comparison. - chunk #2: The id() function guarantees a unique return value for different objects. It does this by returning the pointer to the object. By returning a PyInt, on Win64 (sizeof(long) < sizeof(void*)) the pointer is truncated and the guarantee may be proven false. The appropriate return function is PyLong_FromVoidPtr, this returns a PyLong if that is necessary to return the pointer without truncation. [GvR: note that this means that id() can now return a long on Win32 platforms. This *might* break some code...] - chunk #3: Ensure no overflow in raw_input(). Granted the user would have to pass in >2GB of data but it *is* a possible buffer overflow condition.
-
Fred Drake authored
tableii & friends markup family.
-
Guido van Rossum authored
-
Guido van Rossum authored
-
Guido van Rossum authored
-
Guido van Rossum authored
-
Guido van Rossum authored
-
Fred Drake authored
are and are not turned into bound methods; some confusion was noted by Andrew Dalke. In particular, it has to be noted that functions located on the class instance are not turned into any sort of method, only those which are found via the underlying class.
-
Fred Drake authored
As I really do not have anything better to do at the moment, I have written a patch to Python/marshal.c that prevents Python dumping core when trying to marshal stack bustingly deep (or recursive) data structure. It just throws an exception; even slightly clever handling of recursive data is what pickle is for... [Fred Drake:] Moved magic constant 5000 to a #define. This closes SourceForge patch #100645.
-
Fred Drake authored
Testing: test_array.py was also extended to check that one can set the full range of values for each of the integral signed and unsigned array types. This closes SourceForge patch #100506.
-