Staging
v0.5.1
https://github.com/python/cpython
Revision 11d258ceafdf60ab3840f9a5700f2d0ad3e2e2d1 authored by Tapas Kundu on 04 August 2020, 02:33:30 UTC, committed by GitHub on 04 August 2020, 02:33:30 UTC
CVE-2020-14422: The __hash__() methods of classes IPv4Interface and IPv6Interface had issue
of generating constant hash values of 32 and 128 respectively causing hash collisions.
The fix uses the hash() function to generate hash values for the objects
instead of XOR operation.

(cherry picked from commit b30ee26e366bf509b7538d79bfec6c6d38d53f28)

Co-authored-by: Ravi Teja P <rvteja92@gmail.com>

Signed-off-by: Tapas Kundu <tkundu@vmware.com>
1 parent f205f10
Raw File
Tip revision: 11d258ceafdf60ab3840f9a5700f2d0ad3e2e2d1 authored by Tapas Kundu on 04 August 2020, 02:33:30 UTC
[3.5] bpo-41004: Resolve hash collisions for IPv4Interface and IPv6Interface (GH-21033) (#21233)
Tip revision: 11d258c
pyfpe.c
#include "pyconfig.h"
#include "pyfpe.h"
/*
 * The signal handler for SIGFPE is actually declared in an external
 * module fpectl, or as preferred by the user.  These variable
 * definitions are required in order to compile Python without
 * getting missing externals, but to actually handle SIGFPE requires
 * defining a handler and enabling generation of SIGFPE.
 */

#ifdef WANT_SIGFPE_HANDLER
jmp_buf PyFPE_jbuf;
int PyFPE_counter = 0;
#endif

/* Have this outside the above #ifdef, since some picky ANSI compilers issue a
   warning when compiling an empty file. */

double
PyFPE_dummy(void *dummy)
{
	return 1.0;
}
back to top