From 777408ff8d45b9a73dbf0bcf8c083ade0b5152e5 Mon Sep 17 00:00:00 2001 From: Dan Halbert Date: Mon, 21 Jan 2019 11:45:38 -0500 Subject: [PATCH] struct.pack_into incorrect buffer size check --- shared-module/struct/__init__.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shared-module/struct/__init__.c b/shared-module/struct/__init__.c index 28e7c0c3f9..245dbbda97 100644 --- a/shared-module/struct/__init__.c +++ b/shared-module/struct/__init__.c @@ -124,8 +124,8 @@ void shared_modules_struct_pack_into(mp_obj_t fmt_in, byte *p, byte* end_p, size char fmt_type = get_fmt_type(&fmt); const mp_uint_t total_sz = shared_modules_struct_calcsize(fmt_in); - if (p + total_sz != end_p) { - mp_raise_msg_varg(&mp_type_RuntimeError, translate("unpack requires a buffer of %d bytes"), total_sz); + if (p + total_sz > end_p) { + mp_raise_RuntimeError(translate("buffer too small")); } size_t i;