summaryrefslogtreecommitdiff
path: root/py/objstr.c
diff options
context:
space:
mode:
authorJim Mussared <jim.mussared@gmail.com>2022-11-07 12:55:31 +1100
committerDamien George <damien@micropython.org>2022-11-08 23:09:22 +1100
commit2c8dab7ab4ec0884c6428afc613d9dcc322d8c6d (patch)
tree59add53a83983398bf59c82a71b78532f6ccadca /py/objstr.c
parentf8b0ae32d31cfb95db4294c43b821c205c17e1d3 (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.c4
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);