An error occurred fetching the project authors.
- 19 Dec, 2005 1 commit
-
-
Neal Norwitz authored
Most of these can be backported.
-
- 10 Dec, 2005 1 commit
-
-
Jeremy Hylton authored
In C++, it's an error to pass a string literal to a char* function without a const_cast(). Rather than require every C++ extension module to put a cast around string literals, fix the API to state the const-ness. I focused on parts of the API where people usually pass literals: PyArg_ParseTuple() and friends, Py_BuildValue(), PyMethodDef, the type slots, etc. Predictably, there were a large set of functions that needed to be fixed as a result of these changes. The most pervasive change was to make the keyword args list passed to PyArg_ParseTupleAndKewords() to be a const char *kwlist[]. One cast was required as a result of the changes: A type object mallocs the memory for its tp_doc slot and later frees it. PyTypeObject says that tp_doc is const char *; but if the type was created by type_new(), we know it is safe to cast to char *.
-
- 14 Sep, 2005 1 commit
-
-
Georg Brandl authored
evaluating keyword arguments.
-
- 26 Aug, 2005 1 commit
-
-
Georg Brandl authored
(fixes bug #1119418)
-
- 30 Mar, 2005 1 commit
-
-
Michael W. Hudson authored
commit a yelp about a noted flaw the error messages for METH_KEYWORDS functions under some circumstances.
-
- 03 Mar, 2005 2 commits
-
-
Martin v. Löwis authored
numbers in PyLong_AsLongLong, and update test suite accordingly. Backported to 2.4.
-
Martin v. Löwis authored
Backported to 2.4.
-
- 07 Aug, 2004 1 commit
-
-
Michael W. Hudson authored
[ 991812 ] PyArg_ParseTuple can miss errors with warnings as exceptions as suggested in the report. This is definitely a 2.3 candidate (as are most of the checkins I've made in the last month...)
-
- 10 Jul, 2004 1 commit
-
-
Brett Cannon authored
PyArg_VaParse(). Closes patch #550732. Thanks Greg Chapman.
-
- 03 May, 2003 1 commit
-
-
Martin v. Löwis authored
-
- 18 Apr, 2003 1 commit
-
-
Guido van Rossum authored
changes stay.
-
- 17 Apr, 2003 1 commit
-
-
Thomas Heller authored
New functions: unsigned long PyInt_AsUnsignedLongMask(PyObject *); unsigned PY_LONG_LONG) PyInt_AsUnsignedLongLongMask(PyObject *); unsigned long PyLong_AsUnsignedLongMask(PyObject *); unsigned PY_LONG_LONG) PyLong_AsUnsignedLongLongMask(PyObject *); New and changed format codes: b unsigned char 0..UCHAR_MAX B unsigned char none ** h unsigned short 0..USHRT_MAX H unsigned short none ** i int INT_MIN..INT_MAX I * unsigned int 0..UINT_MAX l long LONG_MIN..LONG_MAX k * unsigned long none L long long LLONG_MIN..LLONG_MAX K * unsigned long long none Notes: * New format codes. ** Changed from previous "range-and-a-half" to "none"; the range-and-a-half checking wasn't particularly useful. New test test_getargs2.py, to verify all this.
-
- 29 Mar, 2003 1 commit
-
-
Martin v. Löwis authored
-
- 04 Feb, 2003 1 commit
-
-
Neil Schemenauer authored
instead of raising a TypeError. Closes #660144 (again).
-
- 24 Jan, 2003 1 commit
-
-
Neil Schemenauer authored
Calling PyInt_AsLong() on a float truncates it which is almost never the desired behavior. This closes SF bug #660144.
-
- 21 Nov, 2002 1 commit
-
-
Walter Dörwald authored
the --disable-unicode build doesn't complain about an unused variable.
-
- 28 Jul, 2002 1 commit
-
-
Martin v. Löwis authored
-
- 04 Apr, 2002 1 commit
-
-
Guido van Rossum authored
Bugfix candidate.
-
- 09 Jan, 2002 1 commit
-
-
Marc-André Lemburg authored
going through the buffer interface API. Added tests for this to the _testcapi module and updated docs.
-
- 03 Dec, 2001 1 commit
-
-
Tim Peters authored
use wrappers on all platforms, to make this as consistent as possible x- platform (in particular, make sure there's at least one \0 byte in the output buffer). Also document more of the truth about what these do. getargs.c, seterror(): Three computations of remaining buffer size were backwards, thus telling PyOS_snprintf the buffer is larger than it actually is. This matters a lot now that PyOS_snprintf ensures there's a trailing \0 byte (because it didn't get the truth about the buffer size, it was storing \0 beyond the true end of the buffer). sysmodule.c, mywrite(): Simplify, now that PyOS_vsnprintf guarantees to produce a \0 byte.
-
- 29 Nov, 2001 1 commit
-
-
Tim Peters authored
vgetargskeywords(): Now that this routine is checking for bad input (rather than dump core in some cases), some bad calls are raising errors that previously "worked". This patch makes the error strings more revealing, and changes the exceptions from SystemError to RuntimeError (under the theory that SystemError is more of a "can't happen!" assert- like thing, and so inappropriate for bad arguments to a public C API function).
-
- 28 Nov, 2001 4 commits
-
-
Jeremy Hylton authored
Also change all the helper functions to pass along the size of the msgbuf and use PyOS_snprintf() when writing into the buffer.
-
Jeremy Hylton authored
seterror() uses a char array and a pointer to the current position in that array. Use snprintf() and compute the amount of space left in the buffer based on the current pointer position.
-
Jeremy Hylton authored
-
Marc-André Lemburg authored
-
- 27 Oct, 2001 15 commits
-
-
Tim Peters authored
+ Squash another potential buffer overrun. + Simplify the keyword-arg loop by decrementing the count of keywords remaining instead of incrementing Yet Another Variable; also break out early if the number of keyword args remaining hits 0. Since I hit the function's closing curly brace with this patch, that's enough of this for now <wink>.
-
Tim Peters authored
we're ensuring that's true during the format parse, get rid of nkwlist.
-
Tim Peters authored
-
Tim Peters authored
the format, instead of waiting until after we can overindex it by mistake.
-
Tim Peters authored
this routine will report an error now when it didn't before, but, if so, it's a legitimate error that should never have been suppressed.
-
Tim Peters authored
dict API everywhere on it instead of sometimes using the slower mapping API.
-
Tim Peters authored
The "need" for this was probably removed by an earlier patch that stopped the loop right before it from passing NULL to a dict lookup routine. I still haven't convinced myself that the next loop is correct, so am leaving the next mysterious PyErr_Clear() call in for now.
-
Tim Peters authored
+ Generally test nkeywords against 0 instead of keywords against NULL (saves a little work if an empty keywords dict is passed, and is conceptually more on-target regardless). + When a call erroneously specifies a keyword argument both by position and by keyword name: - It was easy to provoke this routine into an internal buffer overrun by using a long argument name. Now uses PyErr_format instead (which computes a safe buffer size). - Improved the error msg.
-
Tim Peters authored
+ Got rid of now-redundant dict typecheck. + Renamed nkwds to nkwlist. Now all the "counting" vrbls have names related to the things they're counting in an obvious way.
-
Tim Peters authored
+ Renamed argslen to nargs. + Renamed kwlen to nkeywords. This one was especially confusing because kwlen wasn't the length of the kwlist argument, but of the keywords argument.
-
Tim Peters authored
+ Removed now-redundant tuple typecheck. + Renamed "tplen" local to "argslen" (it's the length of the "args" argument; I suppose "tp" was for "Tim Peters should rename me someday <wink>).
-
Tim Peters authored
introduced this bug just a little while ago, when *adding* internal error checks). vgetargskeywords: Rewrote the section that crawls over the format string. + Added block comment so it won't take the next person 15 minutes to reverse-engineer what it's doing. + Lined up the "else" clauses. + Rearranged the ifs in decreasing order of likelihood (for speed).
-
Tim Peters authored
and raise an error if they're insane. vgetargskeywords: the same, except that since this is an internal routine, just assert that the arguments are sane.
-
Tim Peters authored
the kwlist vector whenever there was a mix of positional and keyword arguments, and the number of positional arguments exceeded the length of the kwlist vector. If there was just one more positional arg than keyword, the kwlist-terminating NULL got passed to PyMapping_HasKeyString, which set an internal error that vgetargskeywords() then squashed (but it's impossible to say whether it knew it was masking an error). If more than one more positional argument, it went on to pass random trash to PyMapping_HasKeyString, which is why the example at the start happened to kill the process. Pure bugfix candidate.
-
Tim Peters authored
removing useless obfuscation.
-