cpython/Misc/NEWS.d/next/Core and Builtins
Gregory P. Smith 397f1b28c4
bpo-33312: Fix clang ubsan out of bounds warnings in dict. (GH-6537)
Fix clang ubsan (undefined behavior sanitizer) warnings in dictobject.c by
adjusting how the internal struct _dictkeysobject shared keys structure is
declared.

This remains ABI compatible.  We get rid of the union at the end of the
struct being used for conveinence to avoid typecasting in favor of char[]
variable length array at the end of a struct. This is known to clang to be
used for variable sized objects and will not cause an undefined behavior
problem.  Similarly, char arrays do not have strict aliasing undefined
behavior when cast.

PEP-007 does not currently list variable length arrays (VLAs) as allowed
in our subset of C99.  If this turns out to be a problem, the fix to this is
to change the char `dk_indices[]` into `dk_indices[1]` and restore the
three size computation subtractions this change removes:
  `- Py_MEMBER_SIZE(PyDictKeysObject, dk_indices)`

If this works as is I'll make a separate PR to update PEP-007.
2018-04-19 22:41:19 -07:00
..
2017-11-26-00-59-22.bpo-10544.fHOM3V.rst bpo-10544: Disallow "yield" in comprehensions and generator expressions. (GH-4564) 2018-02-04 10:53:48 +02:00
2017-12-24-19-48-59.bpo-17611.P85kWL.rst bpo-17611. Move unwinding of stack for "pseudo exceptions" from interpreter to compiler. (GH-5006) 2018-02-22 23:33:30 +02:00
2018-01-03-23-12-43.bpo-32489.SDEPHB.rst bpo-32489: Allow 'continue' in 'finally' clause. (GH-5822) 2018-03-18 09:56:52 +02:00
2018-01-26-21-20-21.bpo-32583.Fh3fau.rst bpo-32583: Fix possible crashing in builtin Unicode decoders (#5325) 2018-01-31 20:48:05 +08:00
2018-01-29-14-36-37.bpo-32711.8hQFJP.rst bpo-32711: Fix warnings for Python/ast_unparse.c (#5426) 2018-02-01 17:59:27 +01:00
2018-02-01-10-16-28.bpo-32303.VsvhSl.rst bpo-32303 - Consistency fixes for namespace loaders (#5481) 2018-02-02 15:15:58 -05:00
2018-02-01-10-56-41.bpo-32305.dkU9Qa.rst bpo-32303 - Consistency fixes for namespace loaders (#5481) 2018-02-02 15:15:58 -05:00
2018-02-02-08-50-46.bpo-31356.MNwUOQ.rst Revert "bpo-31356: Add context manager to temporarily disable GC GH-5495 2018-02-02 09:31:06 -05:00
2018-02-14-12-35-47.bpo-32836.bThJnx.rst bpo-32836: Remove obsolete code from symtable pass (GH-5680) 2018-02-27 07:31:20 +10:00
2018-02-20-21-53-48.bpo-32889.J6eWy5.rst bpo-32889: update valgrind suppressions (GH-5779) 2018-02-20 22:00:01 -08:00
2018-02-24-00-07-05.bpo-32925.e-7Ufh.rst bpo-32925: Optimized iterating and containing test for literal lists (GH-5842) 2018-03-11 10:54:47 +02:00
2018-02-24-21-51-42.bpo-32932.2cz31L.rst bpo-32932: More revealing error message when non-str objects in __all__ (GH-5848) 2018-03-24 18:39:36 +08:00
2018-02-25-10-52-40.bpo-32946.Lo09rG.rst bpo-32946: Speed up "from ... import ..." from non-packages. (GH-5873) 2018-03-11 10:52:37 +02:00
2018-02-27-13-36-21.bpo-17288.Gdj24S.rst bpo-17288: Prevent jumps from 'return' and 'exception' trace events. (GH-6107) 2018-03-13 19:31:31 +02:00
2018-03-06-12-19-19.bpo-33005.LP-V2U.rst bpo-33005: Fix _PyGILState_Reinit() (#6001) 2018-03-06 14:31:37 +01:00
2018-03-08-09-48-38.bpo-33026.QZA3Ba.rst bpo-33026: Fix jumping out of "with" block by setting f_lineno. (#6026) 2018-03-11 08:32:47 +02:00
2018-03-10-15-16-40.bpo-33041.-ak5Fk.rst bpo-33041: Fixed bytecode generation for "async for" with a complex target. (#6052) 2018-03-10 18:22:34 +02:00
2018-03-18-13-56-14.bpo-33041.XwPhI2.rst bpo-33041: Rework compiling an "async for" loop. (#6142) 2018-03-23 14:34:35 +02:00
2018-03-22-23-09-06.bpo-33018.0ncEJV.rst bpo-33018: Improve issubclass() error checking and message. (GH-5944) 2018-03-22 11:26:06 +00:00
2018-03-25-19-49-06.bpo-33053.V3xlsH.rst bpo-33053: -m now adds *starting* directory to sys.path (GH-6231) 2018-03-25 23:03:10 +10:00
2018-04-02-09-32-40.bpo-33199.TPnxQu.rst bpo-33199: Initialize ma_version_tag in PyDict_Copy (GH-6341) 2018-04-03 11:43:53 +09:00
2018-04-03-00-30-25.bpo-29922.CdLuMl.rst bpo-29922: Improve error messages in 'async with' (GH-6352) 2018-04-03 01:41:38 +03:00
2018-04-03-00-58-41.bpo-33205.lk2F3r.rst bpo-33205: dict: Change GROWTH_RATE to `used*3` (GH-6350) 2018-04-17 15:53:34 +09:00
2018-04-05-22-20-44.bpo-33231.3Jmo0q.rst bpo-33231: Fix potential leak in normalizestring() (GH-6386) 2018-04-06 15:51:24 +09:00
2018-04-13-22-31-09.bpo-33176.PB9com.rst bpo-33176: Add a toreadonly() method to memoryviews. (GH-6466) 2018-04-14 19:49:21 +02:00
2018-04-14-13-12-50.bpo-33270.UmVV6i.rst bpo-33270: Intern names for all anonymous code objects (#6472) 2018-04-16 01:12:29 +03:00
2018-04-19-08-30-07.bpo-33312.mDe2iL.rst bpo-33312: Fix clang ubsan out of bounds warnings in dict. (GH-6537) 2018-04-19 22:41:19 -07:00
README.rst Link to blurb on PyPI in the NEWS.d READMEs. (#3323) 2017-09-05 10:38:05 -07:00

README.rst

Put news entry `blurb`_ files for the *Core and Builtins* section in this directory.

.. _blurb: https://pypi.org/project/blurb/