Staging
v0.8.1
https://github.com/python/cpython
Revision a63234c49b2fbfb6f0aca32525e525ce3d43b2b4 authored by Serhiy Storchaka on 10 November 2020, 19:57:32 UTC, committed by GitHub on 10 November 2020, 19:57:32 UTC
* Prevent some possible DoS attacks via providing invalid Plist files
  with extremely large number of objects or collection sizes.
* Raise InvalidFileException for too large bytes and string size instead of returning garbage.
* Raise InvalidFileException instead of ValueError for specific invalid datetime (NaN).
* Raise InvalidFileException instead of TypeError for non-hashable dict keys.
* Add more tests for invalid Plist files..
(cherry picked from commit 34637a0ce21e7261b952fbd9d006474cc29b681f)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
1 parent a75c4c9
Raw File
Tip revision: a63234c49b2fbfb6f0aca32525e525ce3d43b2b4 authored by Serhiy Storchaka on 10 November 2020, 19:57:32 UTC
[3.6] bpo-42103: Improve validation of Plist files. (GH-22882) (GH-23118)
Tip revision: a63234c
_math.h
double _Py_acosh(double x);
double _Py_asinh(double x);
double _Py_atanh(double x);
double _Py_expm1(double x);
double _Py_log1p(double x);

#ifdef HAVE_ACOSH
#define m_acosh acosh
#else
/* if the system doesn't have acosh, use the substitute
   function defined in Modules/_math.c. */
#define m_acosh _Py_acosh
#endif

#ifdef HAVE_ASINH
#define m_asinh asinh
#else
/* if the system doesn't have asinh, use the substitute
   function defined in Modules/_math.c. */
#define m_asinh _Py_asinh
#endif

#ifdef HAVE_ATANH
#define m_atanh atanh
#else
/* if the system doesn't have atanh, use the substitute
   function defined in Modules/_math.c. */
#define m_atanh _Py_atanh
#endif

#ifdef HAVE_EXPM1
#define m_expm1 expm1
#else
/* if the system doesn't have expm1, use the substitute
   function defined in Modules/_math.c. */
#define m_expm1 _Py_expm1
#endif

/* Use the substitute from _math.c on all platforms:
   it includes workarounds for buggy handling of zeros. */
#define m_log1p _Py_log1p
back to top