Skip to content

bytes and bytesarray do not validate arguments properly #4934

@dhalbert

Description

@dhalbert

This is present in 6.3.0 and 7.0.0. I didn't test earlier versions yet. bytes(1,2,3) should raise an error, but it doesn't.

>>> bytes(1,2,3)
b'\x00'
>>> bytes((1,2,3))
b'\x01\x02\x03'

Same is true for bytearray. bytes() does not take the contents as a variable number of arguments. It needs a sequence as the first arg.
CPython:

>>> bytes(1,2,3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: bytes() argument 2 must be str, not int

MicroPython (tested on 1.12 and 1.16):

>>> bytes(1,2,3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: wrong number of arguments

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions