Staging
v0.8.1
https://github.com/python/cpython
Revision db95802bdfac4d13db3e2a391ec7b9e2f8d92dbe authored by Miss Islington (bot) on 22 November 2020, 17:33:09 UTC, committed by GitHub on 22 November 2020, 17:33:09 UTC
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 31729366e2bc09632e78f3896dbce0ae64914f28)

Co-authored-by: Devin Jeanpierre <jeanpierreda@google.com>
1 parent 9ae1742
History
Tip revision: db95802bdfac4d13db3e2a391ec7b9e2f8d92dbe authored by Miss Islington (bot) on 22 November 2020, 17:33:09 UTC
bpo-40791: Make compare_digest more constant-time. (GH-23438)
Tip revision: db95802
File Mode Size
bdist_wininst
clinic
icons
layout
WinMain.c -rw-r--r-- 449 bytes
_msi.c -rw-r--r-- 32.5 KB
_testconsole.c -rw-r--r-- 3.3 KB
classicAppCompat.can.xml -rw-r--r-- 3.9 KB
classicAppCompat.cat -rw-r--r-- 10.7 KB
classicAppCompat.sccd -rw-r--r-- 18.1 KB
config.c -rw-r--r-- 5.3 KB
dl_nt.c -rw-r--r-- 4.6 KB
empty.c -rw-r--r-- 137 bytes
errmap.h -rw-r--r-- 4.9 KB
errmap.mak -rw-r--r-- 95 bytes
frozen_dllmain.c -rw-r--r-- 3.9 KB
getpathp.c -rw-r--r-- 32.9 KB
invalid_parameter_handler.c -rw-r--r-- 549 bytes
launcher.c -rw-r--r-- 59.6 KB
msvcrtmodule.c -rw-r--r-- 15.3 KB
pyconfig.h -rw-r--r-- 19.7 KB
pylauncher.rc -rw-r--r-- 1.5 KB
pyshellext.cpp -rw-r--r-- 18.3 KB
pyshellext.def -rw-r--r-- 141 bytes
pyshellext.idl -rw-r--r-- 277 bytes
pyshellext.rc -rw-r--r-- 1.1 KB
pyshellext_d.def -rw-r--r-- 143 bytes
python.manifest -rw-r--r-- 1.3 KB
python3.def -rw-r--r-- 40.5 KB
python3dll.c -rw-r--r-- 134 bytes
python_exe.rc -rw-r--r-- 1.2 KB
python_nt.rc -rw-r--r-- 1.2 KB
python_uwp.cpp -rw-r--r-- 5.3 KB
python_ver_rc.h -rw-r--r-- 970 bytes
pythonw_exe.rc -rw-r--r-- 1.2 KB
readme.txt -rw-r--r-- 3.5 KB
sqlite3.rc -rw-r--r-- 1.3 KB
store_info.txt -rw-r--r-- 5.6 KB
testpy.py -rw-r--r-- 831 bytes
validate_ucrtbase.py -rw-r--r-- 2.7 KB
winreg.c -rw-r--r-- 60.1 KB
winsound.c -rw-r--r-- 6.5 KB

readme.txt

back to top