cpython/Modules
Miss Islington (bot) db95802bdf
bpo-40791: Make compare_digest more constant-time. (GH-23438)
The existing volatile `left`/`right` pointers guarantee that the reads will all occur, but does not guarantee that they will be _used_. So a compiler can still short-circuit the loop, saving e.g. the overhead of doing the xors and especially the overhead of the data dependency between `result` and the reads. That would change performance depending on where the first unequal byte occurs. This change removes that optimization.

(This is change GH-1 from https://bugs.python.org/issue40791 .)
(cherry picked from commit 31729366e2)

Co-authored-by: Devin Jeanpierre <jeanpierreda@google.com>
2020-11-22 11:33:09 -06:00
..
_blake2 [3.7] Fix misleading mentions of tp_size in comments. (GH-9136) 2018-09-10 10:22:55 -07:00
_ctypes bpo-13097: ctypes: limit callback to 1024 arguments (GH-19914) 2020-05-27 08:51:23 -07:00
_decimal [3.7] Revert bpo-39576: Prevent memory error for overly optimistic precisions (GH-20748) 2020-06-09 01:55:47 +02:00
_io closes bpo-39510: Fix use-after-free in BufferedReader.readinto() (GH-18295) 2020-02-04 13:43:07 -08:00
_multiprocessing [3.7] bpo-36254: Fix invalid uses of %d in format strings in C. (GH-12264). (GH-12322) 2019-03-14 10:47:27 +02:00
_sha3 closes bpo-35643: Fix a SyntaxWarning: invalid escape sequence in Modules/_sha3/cleanup.py (GH-11411) 2019-01-02 11:58:58 -08:00
_sqlite [3.7] bpo-39652: Truncate the column name after '[' only if PARSE_COLNAMES is set. (GH-18942). (GH-19104) 2020-03-21 16:33:44 +02:00
_xxtestfuzz bpo-29505: Fuzz json module, enforce size limit on int(x) fuzz (GH-13991) 2019-06-11 21:47:42 -07:00
cjkcodecs bpo-35504: Fix segfaults and SystemErrors when deleting certain attrs. (GH-11175) 2018-12-17 07:10:20 -08:00
clinic [3.7] bpo-40179: Fix translation of #elif in Argument Clinic (GH-19364) (GH-19584) 2020-04-18 19:12:14 +03:00
expat [3.7] closes bpo-38174: Update vendored expat library to 2.2.8. (GH-16407) 2019-09-25 21:54:59 -07:00
README
Setup.dist closes bpo-35184: Fix XML_POOR_ENTROPY option that breaks makesetup parsing of pyexpat line in Setup. (GH-13064) 2019-06-10 19:15:24 -07:00
_abc.c fix _abc.c compile error on Cygwin (GH-8445) 2019-02-23 17:53:28 -08:00
_asynciomodule.c [3.7] bpo-40559: Add Py_DECREF to _asynciomodule.c:task_step_impl() (GH-19990) 2020-05-08 04:30:30 -07:00
_bisectmodule.c Issue #28792: Remove aliases from _bisect 2016-11-24 23:31:59 +01:00
_bz2module.c bpo-35090: Fix potential division by zero in allocator wrappers (GH-10174) 2018-10-28 13:46:56 -07:00
_codecsmodule.c
_collectionsmodule.c bpo-33012: Fix signatures of METH_NOARGS functions. (GH-10736) (GH-10748) 2018-11-27 20:27:47 +02:00
_contextvarsmodule.c bpo-38823: Clean up refleaks in _contextvars initialization. (GH-17198) 2019-11-16 16:14:45 -08:00
_cryptmodule.c bpo-28503: Use crypt_r() when available instead of crypt() (GH-11373) (GH-11376) 2018-12-30 17:59:52 -08:00
_csv.c Fix name of '\0'. (GH-14222) 2019-06-18 21:59:54 -07:00
_curses_panel.c
_cursesmodule.c bpo-37738: Fix curses addch(str, color_pair) (GH-15071) (GH-15273) 2019-08-14 13:00:27 +02:00
_datetimemodule.c bpo-37372: Fix error unpickling datetime.time objects from Python 2 with seconds>=24. (GH-14307) 2019-08-29 00:57:41 -07:00
_dbmmodule.c
_elementtree.c [3.7] bpo-31758: Prevent crashes when using an uninitialized _elementtree.XMLParser object (GH-3997) (GH-19487) 2020-04-12 19:15:35 +02:00
_functoolsmodule.c bpo-36650: Fix handling of empty keyword args in C version of lru_cache. (GH-12881) (GH-12888) 2019-04-20 07:50:32 -10:00
_gdbmmodule.c
_hashopenssl.c [3.7] bpo-40515: Require OPENSSL_THREADS (GH-19953) (GH-20120) 2020-05-15 22:37:32 +02:00
_heapqmodule.c bpo-39421: Fix posible crash in heapq with custom comparison operators (GH-18118) 2020-01-23 06:25:31 -08:00
_json.c bpo-34649: Add missing NULL checks to _encoded_const() (GH-9225) 2018-09-13 00:46:40 +03:00
_localemodule.c [3.7] bpo-36254: Fix invalid uses of %d in format strings in C. (GH-12264). (GH-12322) 2019-03-14 10:47:27 +02:00
_lsprof.c Fix docstring of Profiler class (GH-8651) 2018-08-03 02:30:49 -07:00
_lzmamodule.c bpo-21872: fix lzma library decompresses data incompletely (GH-14048) 2019-09-12 07:41:30 -07:00
_math.c
_math.h
_opcode.c
_operator.c bpo-40791: Make compare_digest more constant-time. (GH-23438) 2020-11-22 11:33:09 -06:00
_pickle.c bpo-41288: Fix a crash in unpickling invalid NEWOBJ_EX. (GH-21458) (GH-21461) 2020-07-13 14:17:01 -04:00
_posixsubprocess.c bpo-35550: Fix incorrect Solaris define guards (GH-11275) 2018-12-30 18:39:00 -08:00
_queuemodule.c [3.7] Fix misleading mentions of tp_size in comments. (GH-9136) 2018-09-10 10:22:55 -07:00
_randommodule.c closes bpo-35991: Fix a potential double free in Modules/_randommodule.c. (GH-11849) 2019-02-14 00:02:12 -08:00
_scproxy.c closes bpo-31903: Release the GIL when calling into SystemConfiguration (GH-4178) 2018-09-12 08:37:30 -07:00
_sre.c bpo-36251: Fix format strings used in match_repr() and stdprinter_repr(). (GH-12252) 2019-03-10 03:52:44 -07:00
_ssl.c closes bpo-41235: Fix the error handling in SSLContext.load_dh_params() (GH-21389) 2020-07-07 23:55:36 -05:00
_ssl_data.h
_stat.c
_struct.c [3.8] bpo-35714: Reject null characters in struct format strings (GH-16928) (GH-20419) 2020-05-26 02:16:36 -07:00
_testbuffer.c bpo-33029: Fix signatures of getter and setter functions. (GH-10746) 2018-11-27 09:58:07 -08:00
_testcapimodule.c [3.7] bpo-38643: Raise SystemError instead of crashing when PyNumber_ToBase is called with invalid base. (GH-18863). (GH-18955) 2020-03-12 10:15:17 +02:00
_testimportmultiple.c
_testmultiphase.c bpo-34720: Fix test_importlib.test_bad_traverse for AIX (GH-14238) 2019-09-10 14:30:18 +01:00
_threadmodule.c bpo-35454: Fix miscellaneous minor issues in error handling. (GH-11077) 2018-12-10 23:05:13 -08:00
_tkinter.c bpo-38823: Clean up refleaks in _tkinter initialization. (GH-17206) 2019-11-18 07:09:43 -08:00
_tracemalloc.c bpo-38823: Fix refleak in _tracemalloc init error handling (GH-17235) 2019-11-20 02:26:54 -08:00
_uuidmodule.c bpo-32627: Fix compile error when conflicting `_uuid` headers included (GH-11751) 2019-06-24 11:18:22 -07:00
_weakref.c
_winapi.c [3.7] bpo-35489: Use "const Py_UNICODE *" for the Py_UNICODE converter in AC. (GH-11150). (GH-11151) 2018-12-14 11:56:48 +02:00
addrinfo.h
arraymodule.c bpo-36946: Fix possible signed integer overflow when handling slices. (GH-13375) 2019-05-17 00:33:10 -07:00
atexitmodule.c
audioop.c bpo-33781: audioop: enhance rounding double as int (GH-7447) 2018-06-06 07:33:05 -07:00
binascii.c [3.7] bpo-36254: Fix invalid uses of %d in format strings in C. (GH-12264). (GH-12322) 2019-03-14 10:47:27 +02:00
cmathmodule.c bpo-36908: 'This module is always available' isn't helpful. (GH-13297) 2019-05-17 14:08:21 -07:00
config.c.in
errnomodule.c
faulthandler.c bpo-38965: Fix faulthandler._stack_overflow() on GCC 10 (GH-17467) 2019-12-04 12:29:22 -08:00
fcntlmodule.c [3.7] bpo-35189: Retry fnctl calls on EINTR (GH-10413) (GH-10678) 2018-11-23 17:53:14 +01:00
gc_weakref.txt
gcmodule.c [3.7] bpo-38379: don't claim objects are collected when they aren't (GH-16658) (GH-16685) 2019-10-09 14:42:54 -07:00
getaddrinfo.c
getbuildinfo.c
getnameinfo.c
getpath.c bpo-41100: additional fixes for testing on macOS 11 Big Sur Intel 2020-08-15 01:08:56 -04:00
grpmodule.c bpo-34604: Use %R because of invisible characters or trailing whitespaces. (GH-9165). (GH-10947) 2018-12-05 23:23:06 +02:00
hashlib.h
hashtable.c
hashtable.h
itertoolsmodule.c bpo-34410: Fix a crash in the tee iterator when re-enter it. (GH-15625) 2019-09-09 02:11:22 -07:00
ld_so_aix.in
main.c [3.7] bpo-22490: Remove __PYVENV_LAUNCHER__ from environment during launch (GH-9516) (GH-19111) 2020-03-22 15:25:20 -04:00
makesetup closes bpo-34212: Build core extension modules with Py_BUILD_CORE_BUILTIN. (GH-8712) 2018-11-26 18:32:57 -08:00
makexp_aix
mathmodule.c [3.7] bpo-39871: Fix possible SystemError in atan2, copysign and remainder (GH-18806) (GH-18990) 2020-03-14 11:51:53 +00:00
md5module.c bpo-20216: Correct docstrings of digest() methods in hashlib. (GH-9873) (GH-9971) 2018-10-20 01:20:56 +02:00
mmapmodule.c [3.7] bpo-38168: Fix a possbile refleak in setint() of mmapmodule.c (GH-16136) (GH-16175) 2019-09-15 23:27:38 -07:00
nismodule.c bpo-35356: Fix a possible reference leak in nis.maps(). (GH-10808) 2018-11-30 00:00:07 -08:00
ossaudiodev.c bpo-39582: ossaudiodev module update helpers signature for ioctl calls. (GH-18412) 2020-03-14 07:43:47 -07:00
overlapped.c bpo-37445: Include FORMAT_MESSAGE_IGNORE_INSERTS in FormatMessageW() calls (GH-14462) 2019-09-09 02:56:03 -07:00
parsermodule.c [3.7] bpo-36440: include node names in ParserError messages, instead of numeric IDs (GH-12565) (GH-12671) 2019-04-03 14:34:59 -04:00
posixmodule.c bpo-40653: Move _dirnameW out of GH-ifdef HAVE_SYMLINK/GH-endif (GH-20144) 2020-05-18 09:34:21 -07:00
posixmodule.h
pwdmodule.c bpo-34604: Use %R because of invisible characters or trailing whitespaces. (GH-9165). (GH-10947) 2018-12-05 23:23:06 +02:00
pyexpat.c Fix several reference counting bugs in pyexpat.c. (GH-9955) 2018-10-19 00:16:25 -07:00
readline.c Fix compiler warning in call_readline() (GH-10820) (GH-12452) 2019-03-20 01:00:41 +01:00
resource.c
rotatingtree.c
rotatingtree.h
selectmodule.c [3.7] bpo-38580: Document that select() accepts iterables, not just sequences (GH-16832) 2020-05-26 15:59:23 +03:00
sha1module.c bpo-20216: Correct docstrings of digest() methods in hashlib. (GH-9873) (GH-9971) 2018-10-20 01:20:56 +02:00
sha256module.c bpo-20216: Correct docstrings of digest() methods in hashlib. (GH-9873) (GH-9971) 2018-10-20 01:20:56 +02:00
sha512module.c bpo-20216: Correct docstrings of digest() methods in hashlib. (GH-9873) (GH-9971) 2018-10-20 01:20:56 +02:00
signalmodule.c bpo-23395: Fix PyErr_SetInterrupt if the SIGINT signal is ignored or not handled (GH-7778) 2019-05-24 02:22:38 -07:00
socketmodule.c bpo-37811: FreeBSD, OSX: fix poll(2) usage in sockets module (GH-15202) 2019-08-14 14:48:03 -07:00
socketmodule.h closes bpo-34555: Fix incorrectly nested test for HAVE_LINUX_VM_SOCKETS_H (GH-9016) 2018-09-01 18:30:44 -04:00
spwdmodule.c
sre.h
sre_constants.h
sre_lib.h bpo-34294: re module, fix wrong capturing groups in rare cases. (GH-11546) 2019-02-18 05:48:23 -08:00
symtablemodule.c
syslogmodule.c
termios.c Fix a possible "double decref" in termios.tcgetattr(). (GH-10194) 2018-10-28 22:17:45 -07:00
testcapi_long.h
timemodule.c bpo-36205: Fix the rusage implementation of time.process_time() (GH-15538) 2019-08-26 21:31:27 -07:00
tkappinit.c
tkinter.h
unicodedata.c bpo-29456: Fix bugs in unicodedata.normalize: u1176, u11a7 and u11c3 (GH-1958) 2018-06-15 05:21:55 -07:00
unicodedata_db.h update to Unicode 11.0.0 (closes bpo-33778) (GH-7439) (GH-7470) 2018-06-07 03:36:22 -04:00
unicodename_db.h update to Unicode 11.0.0 (closes bpo-33778) (GH-7439) (GH-7470) 2018-06-07 03:36:22 -04:00
winreparse.h
xxlimited.c bpo-33644: Fix signatures of tp_finalize handlers in testing code. (GH-7111) 2018-05-26 01:33:23 -07:00
xxmodule.c
xxsubtype.c bpo-33029: Fix signatures of getter and setter functions. (GH-10746) 2018-11-27 09:58:07 -08:00
zipimport.c
zlibmodule.c bpo-35090: Fix potential division by zero in allocator wrappers (GH-10174) 2018-10-28 13:46:56 -07:00

README

Source files for standard library extension modules,
and former extension modules that are now builtin modules.