homepage

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.

classification
Title: Missing SWAP_INT in I_set_sw
Type: behavior Stage: patch review
Components: ctypes Versions: Python 3.4, Python 3.5, Python 2.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: meador.inge Nosy List: amaury.forgeotdarc, belopolsky, meador.inge, mgautierfr, python-dev, vstinner
Priority: normal Keywords: patch

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:12adminsetgithub: 67508
2015年07月29日 13:20:12meador.ingesetmessages: + msg247572
2015年07月29日 12:41:34python-devsetmessages: + msg247570
2015年07月29日 12:38:49vstinnersetstatus: open -> closed

nosy: + vstinner
messages: + msg247569

resolution: fixed
2015年07月29日 12:37:39python-devsetmessages: + msg247568
2015年07月29日 12:36:24python-devsetnosy: + python-dev
messages: + msg247567
2015年07月16日 09:47:25mgautierfrsetmessages: + msg246797
versions: + Python 2.7
2015年07月09日 15:44:47meador.ingesetassignee: meador.inge
messages: + msg246509
stage: patch review
2015年07月08日 07:11:31mgautierfrsetversions: + Python 3.5
2015年06月24日 17:31:57serhiy.storchakasetnosy: + amaury.forgeotdarc, belopolsky, meador.inge
2015年06月24日 15:48:05mgautierfrsetfiles: + ctypes_swap_uint_unittest.patch

messages: + msg245758
2015年01月25日 18:53:37mgautierfrcreate

AltStyle によって変換されたページ (->オリジナル) /