From fee21ba2726a8489d5a6690edcf632bc72ea4ff4 Mon Sep 17 00:00:00 2001 From: s-hadinger <49731213+s-hadinger@users.noreply.github.com> Date: Fri, 26 Sep 2025 16:27:02 +0200 Subject: [PATCH] Berry alternative to strnlen (#23952) --- lib/libesp32/berry/src/be_byteslib.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/libesp32/berry/src/be_byteslib.c b/lib/libesp32/berry/src/be_byteslib.c index 046505aef..82053443d 100644 --- a/lib/libesp32/berry/src/be_byteslib.c +++ b/lib/libesp32/berry/src/be_byteslib.c @@ -806,7 +806,10 @@ static int m_asstring(bvm *vm) { buf_impl attr = bytes_check_data(vm, 0); check_ptr(vm, &attr); - size_t safe_len = strnlen((const char*) attr.bufptr, attr.len); + /* equivalent to strnlen() */ + const char* str = (const char*) attr.bufptr; + const char* found = memchr(str, '\0', attr.len); + size_t safe_len = found ? (size_t)(found - str) : (size_t)attr.len; be_pushnstring(vm, (const char*) attr.bufptr, safe_len); be_return(vm); }