Commit Graph

10660 Commits

Author SHA1 Message Date
Gregory P. Smith 5f4d05d83f
[3.7] bpo-35214: Initial clang MemorySanitizer support (GH-10479) (GH-10492)
Adds configure flags for msan and ubsan builds to make it easier to enable.
These also encode the detail that address sanitizer and memory sanitizer
should disable pymalloc.

Define MEMORY_SANITIZER when appropriate at build time and adds workarounds
to existing code to mark things as initialized where the sanitizer is otherwise unable to
determine that.  This lets our build succeed under the memory sanitizer.  not all tests
pass without sanitizer failures yet but we're in pretty good shape after this.

(cherry picked from commit 1584a00815)

Co-authored-by: Gregory P. Smith <greg@krypto.org> [Google LLC]
2018-11-12 13:48:24 -08:00
Miss Islington (bot) 22234f1375
bpo-35194: Fix a wrong constant in cp932 codec (GH-10420)
This typo doesn't affect the result because wrong bits are discarded
on implicit conversion to unsigned char, but it trips UBSan
with -fsanitize=implicit-integer-truncation.

https://bugs.python.org/issue35194
(cherry picked from commit 7a69cf47a9)

Co-authored-by: Alexey Izbyshev <izbyshev@ispras.ru>
2018-11-08 23:35:05 -08:00
Miss Islington (bot) 7beb8c54ed
bpo-35133: Fix mistakes when concatenate string literals on different lines. (GH-10284)
Two kind of mistakes:

1. Missed space. After concatenating there is no space between words.

2. Missed comma. Causes unintentional concatenating in a list of strings.
(cherry picked from commit 34fd4c2019)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2018-11-05 06:52:58 -08:00
BNMetrics 08026b103e [3.7]bpo-29341: Backport b942707 3.7 (#10298)
Some methods in the os module can accept path-like objects. This is documented in the general documentation but not in the function docstrings. To keep both in sync, the docstrings need to be updated to reflect that path-like objects are also accepted..
(cherry picked from commit b942707fc2)

Co-authored-by: BNMetrics <luna@bnmetrics.com>
2018-11-02 13:56:25 -04:00
Miss Islington (bot) 04c96669b1
closes bpo-35139: The `pyexpat` module's macros in `Modules/Setup` now match `setup.py` (GH-10289)
This could cause compile errors on macOS or other platforms.
(cherry picked from commit 318ab63c01)

Co-authored-by: Max Bélanger <aeromax@gmail.com>
2018-11-01 20:09:04 -07:00
Miss Islington (bot) 71b6c1af72
bpo-35062: Fix parsing _io.IncrementalNewlineDecoder's *translate* argument. (GH-10217)
_io.IncrementalNewlineDecoder's initializer possibly assigns out-of-range
value to the bitwise struct field.
(cherry picked from commit b08746bfdf)

Co-authored-by: Xiang Zhang <angwerzx@126.com>
2018-10-31 05:36:20 -07:00
Miss Islington (bot) f00703d294
Fix a possible "double decref" in termios.tcgetattr(). (GH-10194)
(cherry picked from commit 53835e92d3)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
2018-10-28 22:17:45 -07:00
Miss Islington (bot) 1d7d165e3c
bpo-35090: Fix potential division by zero in allocator wrappers (GH-10174)
* Fix potential division by zero in BZ2_Malloc()
* Avoid division by zero in PyLzma_Malloc()
* Avoid division by zero and integer overflow in PyZlib_Malloc()

Reported by Svace static analyzer.
(cherry picked from commit 3d4fabb2a4)

Co-authored-by: Alexey Izbyshev <izbyshev@ispras.ru>
2018-10-28 13:46:56 -07:00
Miss Islington (bot) 95cfb818ea
bpo-35059, libmpdec: Add missing EXTINLINE in mpdecimal.h (GH-10128)
Declare functions with EXTINLINE:

* mpd_del()
* mpd_uint_zero()
* mpd_qresize()
* mpd_qresize_zero()
* mpd_minalloc()

These functions are implemented with "inline" or "ALWAYS_INLINE", but
declared without inline which cause linker error on Visual Studio in
Debug mode when using /Ob1.
(cherry picked from commit 3b1cba3701)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
2018-10-26 10:28:26 -07:00
Miss Islington (bot) f7cefb427c bpo-34794: Fix a leak in Tkinter. (GH-10025) (GH-10069)
Based on the investigation by Xiang Zhang.
(cherry picked from commit df13df41a2)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2018-10-23 23:46:32 +02:00
Miss Islington (bot) c46f0423a4
Fix error handling bugs in _elementtree.c. (GH-10060)
References could leak, NULL could be dereferenced, and the Expat parser could
be double freed when some errors raised.
(cherry picked from commit 9f3ed3e213)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
2018-10-23 12:45:44 -07:00
Miss Islington (bot) 18450be94d
bpo-34454: Clean up datetime.fromisoformat surrogate handling (GH-8959)
* Use _PyUnicode_Copy in sanitize_isoformat_str

* Use repr in fromisoformat error message

This reverses commit 67b74a98b2 per Serhiy Storchaka's suggestion:

     I suggested to use %R in the error message because including the raw
     string can be confusing in the case of empty string, or string
     containing trailing whitespaces, invisible or unprintable characters.

We agree that it is better to change both the C and pure Python versions
to use repr.

* Retain non-sanitized dtstr for error printing

This does not create an extra string, it just holds on to a reference to
the original input string for purposes of creating the error message.

* PEP 7 fixes to from_isoformat

* Separate handling of Unicode and other errors

In the initial implementation, errors other than encoding errors would
both raise an error indicating an invalid format, which would not be
true for errors like MemoryError.

* Drop needs_decref from _sanitize_isoformat_str

Instead _sanitize_isoformat_str returns a new reference, even to the
original string.
(cherry picked from commit 3df85404d4)

Co-authored-by: Paul Ganssle <pganssle@users.noreply.github.com>
2018-10-22 15:35:15 -07:00
Miss Islington (bot) 002aef3f66
closes bpo-35025: Properly guard the `CLOCK_GETTIME` et al macros in timemodule.c. (GH-9961)
Guard the `CLOCK_GETTIME` et al macros in `timemodule` based on the availability of the parent functions
(cherry picked from commit 94451182cc)

Co-authored-by: Max Bélanger <aeromax@gmail.com>
2018-10-20 17:41:38 -07:00
Miss Islington (bot) 8f53dcdb24
bpo-32890, os: Use errno instead of GetLastError() in execve() and truncate() (GH-5784)
path_error() uses GetLastError() on Windows, but some os functions
are implemented via CRT APIs which report errors via errno.
This may result in raising OSError with invalid error code (such
as zero).

Introduce posix_path_error() function and use it where appropriate.
(cherry picked from commit 834603112e)

Co-authored-by: Alexey Izbyshev <izbyshev@ispras.ru>
2018-10-19 17:46:25 -07:00
Miss Islington (bot) 23efe77acf bpo-20216: Correct docstrings of digest() methods in hashlib. (GH-9873) (GH-9971)
(cherry picked from commit f192aeb95a)

Co-authored-by: Srinivas  Thatiparthy (శ్రీనివాస్  తాటిపర్తి) <srinivasreddy@users.noreply.github.com>
2018-10-20 01:20:56 +02:00
Miss Islington (bot) 4ec9f64e07 bpo-34824: Fix a possible NULL pointer dereference in _ssl.c (GH-9606) (GH-9743)
On failure, _PyBytes_Resize() will deallocate the bytes object and set
"result" to NULL.

https://bugs.python.org/issue34824
(cherry picked from commit 365ad2ead5)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
2018-10-20 01:14:42 +02:00
Miss Islington (bot) ef7f29f66c
Elaborate datetime.timedelta docstring (GH-7458)
(cherry picked from commit d6a61f2326)

Co-authored-by: Chris Barker <Chris.Barker@noaa.gov>
2018-10-19 16:02:13 -07:00
Miss Islington (bot) d6d35d0a00
Fix several reference counting bugs in pyexpat.c. (GH-9955)
(cherry picked from commit 68def052dc)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
2018-10-19 00:16:25 -07:00
Miss Islington (bot) 5b9b9353de
bpo-35008: Fix possible leaks in Element.__setstate__(). (GH-9924)
C implementation of xml.etree.ElementTree.Element.__setstate__()
leaked references to children when called for already initialized
element.
(cherry picked from commit 6f906b3d72)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2018-10-18 00:17:15 -07:00
Miss Islington (bot) 178d1c0777
bpo-24658: Fix read/write greater than 2 GiB on macOS (GH-1705)
On macOS, fix reading from and writing into a file with a size larger than 2 GiB.
(cherry picked from commit 74a8b6ea7e)

Co-authored-by: Stéphane Wirtel <stephane@wirtel.be>
2018-10-17 23:58:40 -07:00
Miss Islington (bot) 35ae99d7b3
[3.7] bpo-35011: Restore use of pyexpatns.h in libexpat (GH-9939) (GH-9940)
Restores the use of pyexpatns.h to isolate our embedded copy of the expat C
library so that its symbols do not conflict at link or dynamic loading time
with an embedding application or other extension modules with their own
version of libexpat.

5dc3f23b5fGH-diff-3afaf7274c90ce1b7405f75ad825f545 inadvertently removed it when upgrading expat.
(cherry picked from commit 9d4712bc8f)


Co-authored-by: Gregory P. Smith <greg@krypto.org>


https://bugs.python.org/issue35011
2018-10-17 19:06:30 -07:00
Miss Islington (bot) b1c800303e
bpo-34941: Fix searching Element subclasses. (GH-9766)
Methods find(), findtext() and findall() of xml.etree.ElementTree.Element
were not able to find chldren which are instances of Element subclasses.
(cherry picked from commit b11c5667f9)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2018-10-14 00:55:49 -07:00
Serhiy Storchaka 8b040e5539
[3.7] bpo-34922: Fix integer overflow in the digest() and hexdigest() methods (GH-9751) (GH-9798)
for the SHAKE algorithm in the hashlib module.
(cherry picked from commit 9b8c2e7676)
2018-10-11 08:06:36 +03:00
Stéphane Wirtel a4910c2498 [3.7] bpo-34906: Doc: Fix typos (2) (GH-9735)
(cherry picked from commit 683281f536)
2018-10-10 15:39:17 +02:00
Serhiy Storchaka d9212200fe
[3.7] Fix a compiler warning added in bpo-34872. (GH-9722). (GH-9726)
(cherry picked from commit addf8afb43)
2018-10-05 21:58:15 +03:00
Miss Islington (bot) b3c4a050b7
bpo-34906: Doc: Fix typos (GH-9712)
(cherry picked from commit 07fbbfde1b)

Co-authored-by: Stéphane Wirtel <stephane@wirtel.be>
2018-10-05 07:35:18 -07:00
Elvis Pranskevichus a67bd53d3f [3.7] bpo-34872: Fix self-cancellation in C implementation of asyncio.Task (GH-9679) (GH-9691)
The C implementation of asyncio.Task currently fails to perform the
cancellation cleanup correctly in the following scenario.

    async def task1():
        async def task2():
            await task3     # task3 is never cancelled

        asyncio.current_task().cancel()
        await asyncio.create_task(task2())

The actuall error is a hardcoded call to `future_cancel()` instead of
calling the `cancel()` method of a future-like object.

Thanks to Vladimir Matveev for noticing the code discrepancy and to
Yury Selivanov for coming up with a pathological scenario..
(cherry picked from commit 548ce9dedd)

Co-authored-by: Elvis Pranskevichus <elvis@magic.io>


https://bugs.python.org/issue34872
2018-10-03 08:49:00 -07:00
Miss Islington (bot) 758ad54dac
Fix incorrect error handling in _pickle.Unpickler.__init__() (GH-9630)
_pickle.Unpickler.__init__() should return -1 if Pdata_New() fails, not 1.
(cherry picked from commit 4b430e5f69)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
2018-09-28 23:01:48 -07:00
Miss Islington (bot) 7e35081bc8
bpo-34736: improve error message for invalid length b64decode inputs (GH-9563)
Improvements:
1. Include the number of valid data characters in the error message.
2. Mention "number of data characters" rather than "length".

https://bugs.python.org/issue34736
(cherry picked from commit 1fba2ffc37)

Co-authored-by: Tal Einat <taleinat+github@gmail.com>
2018-09-27 23:12:54 -07:00
Yury Selivanov 24cb7de15d
[3.7] bpo-34762: Update PyContext* refs to PyObject* in asyncio and decimal (GH-9610) 2018-09-27 15:33:23 -04:00
Victor Stinner ddc163df25
bpo-34783: Fix Py_Main() (GH-9526)
Fix a crash with musl libc (on Alpine Linux) when the script filename
specified on the command line doesn't exist. pymain_open_filename()
now gets the current core configuration from the interpreter state.

Modify the code to make it closer to the master branch:

* Rename _Py_CommandLineDetails to _PyCmdline
* Remove _PyMain.config: replaced with a local variable
  'local_config' in pymain_init()
* Reorganize pymain_main(): move code using the "local config"
  into pymain_init()
* As soon as possible, switch from the local config to the core
  configuration attached to the interpreter.
2018-09-24 05:03:01 -07:00
Christian Heimes 2756ef3165 [3.7] bpo-34670: Add TLS 1.3 post handshake auth (GH-9460) (GH-9505)
Add SSLContext.post_handshake_auth and
SSLSocket.verify_client_post_handshake for TLS 1.3 post-handshake
authentication.

Signed-off-by: Christian Heimes <christian@python.org>q

https://bugs.python.org/issue34670.
(cherry picked from commit 9fb051f032)

Co-authored-by: Christian Heimes <christian@python.org>



https://bugs.python.org/issue34670
2018-09-23 00:22:52 -07:00
Miss Islington (bot) c00f7037df
bpo-34759: Fix error handling in ssl 'unwrap()' (GH-9468)
OpenSSL follows the convention that whenever you call a function, it
returns an error indicator value; and if this value is negative, then
you need to go look at the actual error code to see what happened.

Commit c6fd1c1c3a introduced a small mistake in
_ssl__SSLSocket_shutdown_impl: instead of checking whether the error
indicator was negative, it started checking whether the actual error
code was negative, and it turns out that the error codes are never
negative. So the effect was that 'unwrap()' lost the ability to raise
SSL errors.

https://bugs.python.org/issue34759
(cherry picked from commit c0da582b22)

Co-authored-by: Nathaniel J. Smith <njs@pobox.com>
2018-09-21 22:00:42 -07:00
Miss Islington (bot) 187f2dd256
bpo-34762: Fix contextvars C API to use PyObject* pointer types. (GH-9473)
(cherry picked from commit 2ec872b31e)

Co-authored-by: Yury Selivanov <yury@magic.io>
2018-09-21 12:48:10 -07:00
Miss Islington (bot) 975f3cb1f2
bpo-34735: Fix a memory leak in Modules/timemodule.c (GH-9418)
There was a missing PyMem_Free(format) in time_strftime().
(cherry picked from commit 91e6c8717b)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
2018-09-21 00:41:50 -07:00
Miss Islington (bot) ef4306b24c
closes bpo-34656: Avoid relying on signed overflow in _pickle memos. (GH-9261)
(cherry picked from commit a4ae828ee4)

Co-authored-by: Benjamin Peterson <benjamin@python.org>
2018-09-20 18:52:36 -07:00
Miss Islington (bot) c56bbae5e9 bpo-34743: Fix test_database_source_name under SQLite 3.7.9 (GH-9426)
(cherry picked from commit b10a64d117)

Co-authored-by: Berker Peksag <berker.peksag@gmail.com>
2018-09-20 20:20:32 +03:00
Miss Islington (bot) 015cd0f5cb bpo-32215: Fix performance regression in sqlite3 (GH-8511)
(cherry picked from commit 8d1e190fc5)

Co-authored-by: Berker Peksag <berker.peksag@gmail.com>
2018-09-20 18:56:56 +03:00
Victor Stinner 95cc3ee00c
Revert "[3.7] bpo-34589: Add -X coerce_c_locale option; C locale coercion off by default (GH-9379)" (GH-9416)
This reverts commit 144f1e2c6f.
2018-09-19 12:01:52 -07:00
Miss Islington (bot) 470a435f3b
bpo-34623: Use XML_SetHashSalt in _elementtree (GH-9146)
The C accelerated _elementtree module now initializes hash randomization
salt from _Py_HashSecret instead of libexpat's default CPRNG.

Signed-off-by: Christian Heimes <christian@python.org>

https://bugs.python.org/issue34623
(cherry picked from commit cb5778f00c)

Co-authored-by: Christian Heimes <christian@python.org>
2018-09-18 06:11:09 -07:00
Victor Stinner 144f1e2c6f
[3.7] bpo-34589: Add -X coerce_c_locale option; C locale coercion off by default (GH-9379)
* bpo-34589: Make _PyCoreConfig.coerce_c_locale private (GH-9371)

_PyCoreConfig:

* Rename coerce_c_locale to _coerce_c_locale
* Rename coerce_c_locale_warn to _coerce_c_locale_warn

These fields are now private (name prefixed by "_").

(cherry picked from commit 188ebfa475)

* bpo-34589: C locale coercion off by default (GH-9073)

Py_Initialize() and Py_Main() cannot enable the C locale coercion
(PEP 538) anymore: it is always disabled. It can now only be enabled
by the Python program ("python3).

test_embed: get_filesystem_encoding() doesn't have to set PYTHONUTF8
nor PYTHONCOERCECLOCALE, these variables are already set in the
parent.

(cherry picked from commit 7a0791b699)

* bpo-34589: Add -X coerce_c_locale command line option (GH-9378)

Add a new -X coerce_c_locale command line option to control C locale
coercion (PEP 538).

(cherry picked from commit dbdee0073c)
2018-09-17 18:01:39 -07:00
Miss Islington (bot) 1229664f30
bpo-32533: Fixed thread-safety of error handling in _ssl. (GH-7158)
(cherry picked from commit c6fd1c1c3a)

Co-authored-by: Steve Dower <steve.dower@microsoft.com>
2018-09-17 12:12:13 -07:00
Miss Islington (bot) e2c0aea670
bpo-34710: fix SSL module build (GH-9347)
Include ``openssl/dh.h`` header file to fix implicit function declaration of ``DH_free()``.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
(cherry picked from commit b3a271fc0c)

Co-authored-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2018-09-17 05:18:23 -07:00
Miss Islington (bot) e3f6aa7fe4
bpo-34603, ctypes/libffi_msvc: Fix returning structs from functions (GH-9258)
(cherry picked from commit 7843caeb90)

Co-authored-by: Vladimir Matveev <v2matveev@outlook.com>
2018-09-15 22:53:13 -07:00
Miss Islington (bot) b2ff9a9f92
bpo-34658: Fix rare subprocess prexec_fn fork error. (GH-9255)
[bpo-34658](https://www.bugs.python.org/issue34658): Fix a rare interpreter unhandled exception state SystemError only
seen when using subprocess with a preexec_fn while an after_parent handler has
been registered with os.register_at_fork and the fork system call fails.

https://bugs.python.org/issue34658
(cherry picked from commit a20b6adb5a)

Co-authored-by: Gregory P. Smith <greg@krypto.org>
2018-09-13 10:11:00 -07:00
Miss Islington (bot) ec4d099b9f bpo-34649: Add missing NULL checks to _encoded_const() (GH-9225)
Reported by Svace static analyzer.
(cherry picked from commit 6f82bffd2d)

Co-authored-by: Alexey Izbyshev <izbyshev@ispras.ru>
2018-09-13 00:46:40 +03:00
Miss Islington (bot) 329ea4ef7c
bpo-31577: Fix a crash in os.utime() in case of a bad ns argument. (GH-3752)
(cherry picked from commit 0bd1a2dcfd)

Co-authored-by: Oren Milman <orenmn@gmail.com>
2018-09-12 12:46:30 -07:00
Miss Islington (bot) 72c34cf6dd
closes bpo-31903: Release the GIL when calling into SystemConfiguration (GH-4178)
(cherry picked from commit 4859ba0d2c)

Co-authored-by: Max Bélanger <aeromax@gmail.com>
2018-09-12 08:37:30 -07:00
Benjamin Peterson cadb66e173
[3.7] closes bpo-25041: Document AF_PACKET socket address format. (GH-9207)
(cherry picked from commit 731ff68eee)

Co-authored-by: Cheryl Sabella <cheryl.sabella@gmail.com>
2018-09-11 18:46:36 -07:00
Miss Islington (bot) 01ce535ba9
Delete old expat comment. (GH-9197)
(cherry picked from commit b9bf9d025e)

Co-authored-by: Benjamin Peterson <benjamin@python.org>
2018-09-11 18:04:33 -07:00