From 81b5c63a0ef35d024a7b21377b84c6b9a312958c Mon Sep 17 00:00:00 2001 From: chrchr-github <78114321+chrchr-github@users.noreply.github.com> Date: Mon, 20 Apr 2026 14:41:04 +0200 Subject: [PATCH 1/2] Update checkuninitvar.cpp --- lib/checkuninitvar.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/checkuninitvar.cpp b/lib/checkuninitvar.cpp index ecaed652c5e..3d1a0ecccc5 100644 --- a/lib/checkuninitvar.cpp +++ b/lib/checkuninitvar.cpp @@ -1422,6 +1422,8 @@ int CheckUninitVar::isFunctionParUsage(const Token *vartok, const Library& libra const bool isnullbad = library.isnullargbad(start->previous(), argumentNumber + 1); if (indirect == 0 && pointer && !address && isnullbad && alloc == NO_ALLOC) return 1; + if (vartok->varId() == 0 && vartok->valueType()) + indirect = vartok->valueType()->pointer; bool hasIndirect = false; const bool isuninitbad = library.isuninitargbad(start->previous(), argumentNumber + 1, indirect, &hasIndirect); if (alloc != NO_ALLOC) From 8df3ff33ed826124bd962d487e5bf5632876b14e Mon Sep 17 00:00:00 2001 From: chrchr-github <78114321+chrchr-github@users.noreply.github.com> Date: Mon, 20 Apr 2026 14:42:14 +0200 Subject: [PATCH 2/2] Update testuninitvar.cpp --- test/testuninitvar.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/testuninitvar.cpp b/test/testuninitvar.cpp index d04f3c62e8e..960fee4ee87 100644 --- a/test/testuninitvar.cpp +++ b/test/testuninitvar.cpp @@ -2173,6 +2173,14 @@ class TestUninitVar : public TestFixture { " return p;\n" "}\n"); ASSERT_EQUALS("", errout_str()); + + checkUninitVar("struct S { char c[10]; };\n" // #11290 + "S* f() {\n" + " S* s = (S*)malloc(sizeof(S));\n" + " sprintf(s->c, \"abc\");\n" + " return s;\n" + "}\n"); + ASSERT_EQUALS("", errout_str()); } // class / struct..