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 2015年01月25日 18:53 by mgautierfr, last changed 2022年04月11日 14:58 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| ctypes_swap_uint.patch | mgautierfr, 2015年01月25日 18:53 | Fix the bug. Add the missing SWAP_INT. | review | |
| ctypes_swap_uint_unittest.patch | mgautierfr, 2015年06月24日 15:48 | Add missing SWAP_INT + unit_test | review | |
| Messages (9) | |||
|---|---|---|---|
| msg234682 - (view) | Author: Matthieu Gautier (mgautierfr) * | Date: 2015年01月25日 18:53 | |
I_set_sw function is missing a SWAP_INT.
This leads to wrong set of bitfield value.
Here is a script to reproduce:
----------
from ctypes import *
class HEADER(BigEndianStructure):
_fields_ = ( ('pad', c_uint32, 16),
('v1', c_uint32, 4),
('v2', c_uint32, 12)
)
b = bytearray(4)
header = HEADER.from_buffer(b)
header.type = 1
assert b == b'\x00\x00\x10\x00'
header.mode = 0x234
assert b == b'\x00\x00\x12\x34'
----------
|
|||
| msg245758 - (view) | Author: Matthieu Gautier (mgautierfr) * | Date: 2015年06月24日 15:48 | |
A little ping. With a new patch integrating the unit test. |
|||
| msg246509 - (view) | Author: Meador Inge (meador.inge) * (Python committer) | Date: 2015年07月09日 15:44 | |
I will review this today. |
|||
| msg246797 - (view) | Author: Matthieu Gautier (mgautierfr) * | Date: 2015年07月16日 09:47 | |
The bug is also present in Python 2.7. Is it possible to backport this fix ? |
|||
| msg247567 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2015年07月29日 12:36 | |
New changeset 935ae7f001e3 by Victor Stinner in branch '3.4': Issue #23319: Fix ctypes.BigEndianStructure, swap correctly bytes. Patch https://hg.python.org/cpython/rev/935ae7f001e3 |
|||
| msg247568 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2015年07月29日 12:37 | |
New changeset 88f2c4f12b56 by Victor Stinner in branch '2.7': Issue #23319: Fix ctypes.BigEndianStructure, swap correctly bytes. Patch https://hg.python.org/cpython/rev/88f2c4f12b56 |
|||
| msg247569 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2015年07月29日 12:38 | |
Thanks for your report, patch and unit test Matthieu. I rewrote the unit test because your layout was too complex for my little brain :-) I also write a unit test for little endian. I applied your fix to Python 2.7, 3.4, 3.5 and 3.6. |
|||
| msg247570 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2015年07月29日 12:41 | |
New changeset 12b353f76447 by Victor Stinner in branch '2.7': Issue #23319: Add Matthieu Gautier to Misc/ACKS https://hg.python.org/cpython/rev/12b353f76447 New changeset 3caa68f55e3e by Victor Stinner in branch '3.4': Issue #23319: Add Matthieu Gautier to Misc/ACKS https://hg.python.org/cpython/rev/3caa68f55e3e |
|||
| msg247572 - (view) | Author: Meador Inge (meador.inge) * (Python committer) | Date: 2015年07月29日 13:20 | |
Thanks for committing this Victor. The patch looked good to me too. Sorry for not getting around to update the tracker. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:58:12 | admin | set | github: 67508 |
| 2015年07月29日 13:20:12 | meador.inge | set | messages: + msg247572 |
| 2015年07月29日 12:41:34 | python-dev | set | messages: + msg247570 |
| 2015年07月29日 12:38:49 | vstinner | set | status: open -> closed nosy: + vstinner messages: + msg247569 resolution: fixed |
| 2015年07月29日 12:37:39 | python-dev | set | messages: + msg247568 |
| 2015年07月29日 12:36:24 | python-dev | set | nosy:
+ python-dev messages: + msg247567 |
| 2015年07月16日 09:47:25 | mgautierfr | set | messages:
+ msg246797 versions: + Python 2.7 |
| 2015年07月09日 15:44:47 | meador.inge | set | assignee: meador.inge messages: + msg246509 stage: patch review |
| 2015年07月08日 07:11:31 | mgautierfr | set | versions: + Python 3.5 |
| 2015年06月24日 17:31:57 | serhiy.storchaka | set | nosy:
+ amaury.forgeotdarc, belopolsky, meador.inge |
| 2015年06月24日 15:48:05 | mgautierfr | set | files:
+ ctypes_swap_uint_unittest.patch messages: + msg245758 |
| 2015年01月25日 18:53:37 | mgautierfr | create | |