From 8c6a36880d74f6487dd656e851700b706be00a15 Mon Sep 17 00:00:00 2001 From: chrchr-github <78114321+chrchr-github@users.noreply.github.com> Date: Wed, 21 Oct 2026 16:12:58 +0200 Subject: [PATCH 1/3] Update std.cfg --- cfg/std.cfg | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cfg/std.cfg b/cfg/std.cfg index 6c434b8715c..e2595de5fd7 100644 --- a/cfg/std.cfg +++ b/cfg/std.cfg @@ -3974,12 +3974,12 @@ The obsolete function 'gets' is called. With 'gets' you'll get a buffer overrun - + - + @@ -4016,12 +4016,12 @@ The obsolete function 'gets' is called. With 'gets' you'll get a buffer overrun - + - + From 1367f169d6faa8a22f266b01a5c2e23ee7e38090 Mon Sep 17 00:00:00 2001 From: chrchr-github <78114321+chrchr-github@users.noreply.github.com> Date: Wed, 21 Oct 2026 16:14:39 +0200 Subject: [PATCH 2/3] Update std.c --- test/cfg/std.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/cfg/std.c b/test/cfg/std.c index 997f8204f73..eb026d6171d 100644 --- a/test/cfg/std.c +++ b/test/cfg/std.c @@ -616,6 +616,20 @@ void bufferAccessOutOfBounds_wcsncpy() wcsncpy(s, L"abc", 17); } +void bufferAccessOutOfBounds_wmemcpy() +{ + wchar_t a[4]; + // cppcheck-suppress bufferAccessOutOfBounds + wmemcpy(a, L"abcd", 5); +} + +int bufferAccessOutOfBounds_wmemcmp(const wchar_t* b) +{ + const wchar_t a[4] = { L'a', L'b', L'c', L'd' }; + // cppcheck-suppress bufferAccessOutOfBounds + return wmemcmp(a, b, 5); +} + int nullPointer_wcsncmp(const wchar_t* s1, const wchar_t* s2, size_t n) { // cppcheck-suppress nullPointer From 12ac67f0b037e644b96494caa3fa83b3b8cd6f6b Mon Sep 17 00:00:00 2001 From: chrchr-github Date: Thu, 22 Oct 2026 20:27:32 +0200 Subject: [PATCH 3/3] Fix more functions --- cfg/gnu.cfg | 6 +++--- cfg/std.cfg | 8 ++++---- test/cfg/gnu.c | 7 +++++++ test/cfg/std.c | 21 +++++++++++++++++++++ 4 files changed, 35 insertions(+), 7 deletions(-) diff --git a/cfg/gnu.cfg b/cfg/gnu.cfg index 9a0b1652d32..af2fff93e59 100644 --- a/cfg/gnu.cfg +++ b/cfg/gnu.cfg @@ -650,7 +650,7 @@ - + @@ -659,12 +659,12 @@ - + - + diff --git a/cfg/std.cfg b/cfg/std.cfg index e2595de5fd7..d9d289ec691 100644 --- a/cfg/std.cfg +++ b/cfg/std.cfg @@ -3928,7 +3928,7 @@ The obsolete function 'gets' is called. With 'gets' you'll get a buffer overrun - + @@ -4081,13 +4081,13 @@ The obsolete function 'gets' is called. With 'gets' you'll get a buffer overrun - + - + @@ -4141,7 +4141,7 @@ The obsolete function 'gets' is called. With 'gets' you'll get a buffer overrun - + diff --git a/test/cfg/gnu.c b/test/cfg/gnu.c index 42b37036411..830618c241d 100644 --- a/test/cfg/gnu.c +++ b/test/cfg/gnu.c @@ -376,6 +376,13 @@ wchar_t *nullPointer_wmempcpy(wchar_t *dest, const wchar_t *src, size_t n) return wmempcpy(dest,src,n); } +void bufferAccessOutOfBounds_wmempcpy(const wchar_t *src) +{ + wchar_t buf[3]; + // cppcheck-suppress bufferAccessOutOfBounds + wmempcpy(buf, src, 5); +} + int uninitvar_getpw(uid_t uid, char *buf) { uid_t someUid; diff --git a/test/cfg/std.c b/test/cfg/std.c index eb026d6171d..21731f2cd4a 100644 --- a/test/cfg/std.c +++ b/test/cfg/std.c @@ -2951,6 +2951,27 @@ void *bufferAccessOutOfBounds_memchr(const void *s, int c, size_t n) return memchr(s,c,n); } +bool bufferAccessOutOfBounds_wmemchr(wchar_t c) +{ + const wchar_t buf[] = {'a', 'b', 'c'}; + // cppcheck-suppress bufferAccessOutOfBounds + return wmemchr(buf, c, 5) != NULL; +} + +void bufferAccessOutOfBounds_wmemset(wchar_t c) +{ + wchar_t buf[3]; + // cppcheck-suppress bufferAccessOutOfBounds + wmemset(buf, c, 5); +} + +void bufferAccessOutOfBounds_wmemmove(const wchar_t* s) +{ + wchar_t d[3]; + // cppcheck-suppress bufferAccessOutOfBounds + wmemmove(d, s, 5); +} + void uninitvar_wmemchr(void) { const wchar_t *cs;