[New-bugs-announce] [issue23319] Missing SWAP_INT in I_set_sw

Matthieu Gautier report at bugs.python.org
Sun Jan 25 19:53:37 CET 2015


New submission from Matthieu Gautier:

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'
----------

----------
components: ctypes
files: ctypes_swap_uint.patch
keywords: patch
messages: 234682
nosy: mgautierfr
priority: normal
severity: normal
status: open
title: Missing SWAP_INT in I_set_sw
type: behavior
versions: Python 3.4
Added file: http://bugs.python.org/file37856/ctypes_swap_uint.patch

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue23319>
_______________________________________


More information about the New-bugs-announce mailing list