[Python-modules-team] Bug#979559: python-pyalsa: SEQ_EVENT_SYSEX data getting corrupted

Ben Bell bjb-debian-bugs at deus.net
Fri Jan 8 09:58:12 GMT 2021


Package: python-pyalsa
Version: 1.1.6-1+b1
Severity: important

pyalsa version 1.1.6 appears to have introduced a bug when setting
sysex data in events. Rather than the string of bytes provided, it
instead produces an equal length string but containing the last byte
over and over:

With 1.0.26:
  Data set as [240, 126, 127, 6, 1, 247]
  Data retrieved as {'ext': [240, 126, 127, 6, 1, 247]}

With 1.1.6:
  Data set as [240, 126, 127, 6, 1, 247]
  Data retrieved as {'ext': [247, 247, 247, 247, 247, 247]}

Reproducer:
  #!/usr/bin/python
  #
  
  from __future__ import print_function
  import pyalsa.alsaseq as alsaseq
  
  seq = alsaseq.Sequencer()
  ne = alsaseq.SeqEvent(alsaseq.SEQ_EVENT_SYSEX)
  
  data = [0xf0, 0x7e, 0x7f, 0x06, 0x01, 0xf7]
  
  ne.set_data({"ext": data})
  print("Data set as", data)
  print("Data retrieved as", ne.get_data())

This bug is in python-1.1.6-1+b1, which is the latest python2
version. There appears to be another bug (#938965) affecting buster
which stops me testing with python3:

  bjb at rowlf [96] python3 test-alsa-sysex-event.py     
  Traceback (most recent call last):
    File "test-alsa-sysex-event.py", line 8, in <module>
      ne = alsaseq.SeqEvent(alsaseq.SEQ_EVENT_SYSEX)
  OverflowError: Python int too large to convert to C long

...but if I hack around that it's reproducible in python3 too:
   bjb at rowlf [99] python3 test-alsa-sysex-event.py
   Data set as [240, 126, 127, 6, 1, 247]
   Data retrieved as {'ext': [247, 247, 247, 247, 247, 247]}

At the least we might need a newer version (from bullseye -- untested by
me) backported to buster.

bjb


-- System Information:
Debian Release: 10.6
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.10.0-rc5-rt10-rt (SMP w/4 CPU cores; PREEMPT)
Kernel taint flags: TAINT_UNSIGNED_MODULE
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages python-pyalsa depends on:
ii  libasound2  1.1.8-1
ii  libc6       2.28-10
ii  python      2.7.16-1

python-pyalsa recommends no packages.

python-pyalsa suggests no packages.

-- no debconf information



More information about the Python-modules-team mailing list