This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2011年08月16日 20:21 by amaury.forgeotdarc, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| issue12764_patch3x.diff | vladris, 2011年08月17日 16:02 | Patch for 3.3 | review | |
| issue12764_patch2x.diff | vladris, 2011年08月17日 16:02 | Patch for 2.7 | review | |
| Messages (7) | |||
|---|---|---|---|
| msg142218 - (view) | Author: Amaury Forgeot d'Arc (amaury.forgeotdarc) * (Python committer) | Date: 2011年08月16日 20:21 | |
This crashes on python 3.3:: class S(ctypes.Structure): _fields_ = [(b'x', ctypes.c_int)] This also crashes on python 2.7:: class S(ctypes.Structure): _fields_ = [(u'x\xe9', ctypes.c_int)] The cause is the same: in Modules/_ctypes/stgdict.c, the assignment fieldname = _PyUnicode_AsString(name); does not check for errors. |
|||
| msg142284 - (view) | Author: Vlad Riscutia (vladris) | Date: 2011年08月17日 16:02 | |
Attached patch for 3.3 with unittest |
|||
| msg142285 - (view) | Author: Vlad Riscutia (vladris) | Date: 2011年08月17日 16:02 | |
Also patch for 2.7 with unittest. BTW, b"x" works on 2.7. |
|||
| msg143375 - (view) | Author: Meador Inge (meador.inge) * (Python committer) | Date: 2011年09月02日 03:45 | |
Vlad, Thanks for the patch. A few nits: 1. The test case is in 'test_bitfields.py'. I think it should go in 'test_structures.py'. 2. The test case would probably be cleaner using a 'with' context manager: with self.assertRaises(TypeError): class S(Structure): _fields_ = [(b"x", c_int)] A few more test cases might be nice too. 3. The TypeError message display something like: "structure field name must be string not bytes" maybe the following would be more understandable: "field name must be an object of type str not bytes" 4. The 'ptr', 'len', and 'buf' initializers are unnecessary. Otherwise, looks good. |
|||
| msg143430 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2011年09月02日 18:44 | |
New changeset b8acee08283c by Amaury Forgeot d'Arc in branch '3.2': Issue #12764: Fix a crash in ctypes when the name of a Structure field is not http://hg.python.org/cpython/rev/b8acee08283c New changeset 1ed1ea0f4cd8 by Amaury Forgeot d'Arc in branch 'default': Merge from 3.2: Issue #12764: Fix a crash in ctypes when the name of a http://hg.python.org/cpython/rev/1ed1ea0f4cd8 |
|||
| msg143431 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2011年09月02日 18:44 | |
New changeset 73827c23cdde by Amaury Forgeot d'Arc in branch '2.7': Issue #12764: Fix a crash in ctypes when the name of a Structure field is not http://hg.python.org/cpython/rev/73827c23cdde |
|||
| msg143450 - (view) | Author: Meador Inge (meador.inge) * (Python committer) | Date: 2011年09月03日 03:26 | |
This has been fixed. I verified tip and 2.7. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:20 | admin | set | github: 56973 |
| 2011年09月03日 03:26:48 | meador.inge | set | status: open -> closed resolution: fixed messages: + msg143450 stage: patch review -> resolved |
| 2011年09月02日 18:44:15 | python-dev | set | messages: + msg143431 |
| 2011年09月02日 18:44:13 | python-dev | set | nosy:
+ python-dev messages: + msg143430 |
| 2011年09月02日 03:45:39 | meador.inge | set | versions:
+ Python 3.3, Python 3.4 nosy: + meador.inge messages: + msg143375 stage: patch review |
| 2011年08月17日 16:02:39 | vladris | set | files:
+ issue12764_patch2x.diff messages: + msg142285 |
| 2011年08月17日 16:02:01 | vladris | set | files:
+ issue12764_patch3x.diff nosy: + vladris messages: + msg142284 keywords: + patch |
| 2011年08月16日 20:21:56 | amaury.forgeotdarc | create | |