diff options
author | Barry Warsaw <barry@python.org> | 2012-02-21 01:42:21 (GMT) |
---|---|---|
committer | Barry Warsaw <barry@python.org> | 2012-02-21 01:42:21 (GMT) |
commit | 1e13eb084f72d5993cbb726e45b36bdb69c83a24 (patch) | |
tree | 1db691c15c5980a870bcc2606a6d2afc77e28bad /Include | |
parent | f5a5beb33985b4b55480de267084b90d89a5c5c4 (diff) | |
download | cpython-1e13eb084f72d5993cbb726e45b36bdb69c83a24.zip cpython-1e13eb084f72d5993cbb726e45b36bdb69c83a24.tar.gz cpython-1e13eb084f72d5993cbb726e45b36bdb69c83a24.tar.bz2 |
- Issue #13703: oCERT-2011-003: add -R command-line option and PYTHONHASHSEED
environment variable, to provide an opt-in way to protect against denial of
service attacks due to hash collisions within the dict and set types. Patch
by David Malcolm, based on work by Victor Stinner.
Diffstat (limited to 'Include')
-rw-r--r-- | Include/object.h | 6 | ||||
-rw-r--r-- | Include/pydebug.h | 1 | ||||
-rw-r--r-- | Include/pythonrun.h | 2 |
3 files changed, 9 insertions, 0 deletions
diff --git a/Include/object.h b/Include/object.h index 1bb4d78..0b7d41d 100644 --- a/Include/object.h +++ b/Include/object.h @@ -506,6 +506,12 @@ PyAPI_FUNC(void) Py_ReprLeave(PyObject *); PyAPI_FUNC(long) _Py_HashDouble(double); PyAPI_FUNC(long) _Py_HashPointer(void*); +typedef struct { + long prefix; + long suffix; +} _Py_HashSecret_t; +PyAPI_DATA(_Py_HashSecret_t) _Py_HashSecret; + /* Helper for passing objects to printf and the like */ #define PyObject_REPR(obj) PyString_AS_STRING(PyObject_Repr(obj)) diff --git a/Include/pydebug.h b/Include/pydebug.h index 0e7937d..0f45960 100644 --- a/Include/pydebug.h +++ b/Include/pydebug.h @@ -26,6 +26,7 @@ PyAPI_DATA(int) Py_NoUserSiteDirectory; PyAPI_DATA(int) _Py_QnewFlag; /* Warn about 3.x issues */ PyAPI_DATA(int) Py_Py3kWarningFlag; +PyAPI_DATA(int) Py_HashRandomizationFlag; /* this is a wrapper around getenv() that pays attention to Py_IgnoreEnvironmentFlag. It should be used for getting variables like diff --git a/Include/pythonrun.h b/Include/pythonrun.h index 039b498..74024c1 100644 --- a/Include/pythonrun.h +++ b/Include/pythonrun.h @@ -168,6 +168,8 @@ typedef void (*PyOS_sighandler_t)(int); PyAPI_FUNC(PyOS_sighandler_t) PyOS_getsig(int); PyAPI_FUNC(PyOS_sighandler_t) PyOS_setsig(int, PyOS_sighandler_t); +/* Random */ +PyAPI_FUNC(int) _PyOS_URandom (void *buffer, Py_ssize_t size); #ifdef __cplusplus } |