diff --git a/lib/libc/minimal/source/stdout/stdout_console.c b/lib/libc/minimal/source/stdout/stdout_console.c index 92f094c78771..015b07681361 100644 --- a/lib/libc/minimal/source/stdout/stdout_console.c +++ b/lib/libc/minimal/source/stdout/stdout_console.c @@ -65,6 +65,10 @@ size_t z_impl_zephyr_fwrite(const void *_MLIBC_RESTRICT ptr, size_t size, return 0; } + if ((strlen(ptr) + 1) < (size * nitems)) { + return 0; + } + p = ptr; i = nitems; do { diff --git a/tests/lib/sprintf/src/main.c b/tests/lib/sprintf/src/main.c index 7c8913548e01..dfe7317d58b5 100644 --- a/tests/lib/sprintf/src/main.c +++ b/tests/lib/sprintf/src/main.c @@ -914,7 +914,7 @@ void test_fwrite(void) zassert_equal(ret, 0, "fwrite failed!"); ret = fwrite("This 3", 4, 4, stdout); - zassert_not_equal(ret, 0, "fwrite failed!"); + zassert_equal(ret, 0, "fwrite failed!"); ret = fwrite("This 3", 4, 4, stdin); zassert_equal(ret, 0, "fwrite failed!");