diff options
author | Jim Mussared <jim.mussared@gmail.com> | 2022-11-07 12:55:31 +1100 |
---|---|---|
committer | Damien George <damien@micropython.org> | 2022-11-08 23:09:22 +1100 |
commit | 2c8dab7ab4ec0884c6428afc613d9dcc322d8c6d (patch) | |
tree | 59add53a83983398bf59c82a71b78532f6ccadca /py/objstr.c | |
parent | f8b0ae32d31cfb95db4294c43b821c205c17e1d3 (diff) |
py/objarray: Detect bytearray(str) without an encoding.
This prevents a very subtle bug caused by writing e.g. `bytearray('\xfd')`
which gives you `(0xc3, 0xbd)`.
This work was funded through GitHub Sponsors.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Diffstat (limited to 'py/objstr.c')
-rw-r--r-- | py/objstr.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/py/objstr.c b/py/objstr.c index 8c639e735..bd3e16e7f 100644 --- a/py/objstr.c +++ b/py/objstr.c @@ -233,7 +233,11 @@ STATIC mp_obj_t bytes_make_new(const mp_obj_type_t *type_in, size_t n_args, size if (mp_obj_is_str(args[0])) { if (n_args < 2 || n_args > 3) { + #if MICROPY_ERROR_REPORTING <= MICROPY_ERROR_REPORTING_TERSE goto wrong_args; + #else + mp_raise_TypeError(MP_ERROR_TEXT("string argument without an encoding")); + #endif } GET_STR_DATA_LEN(args[0], str_data, str_len); GET_STR_HASH(args[0], str_hash); |