https://bugs.kde.org/show_bug.cgi?id=432801

            Bug ID: 432801
           Summary: Valgrind 3.16.1 reports a jump based on uninitialized
                    memory somehow related to clang and signals
           Product: valgrind
           Version: unspecified
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: memcheck
          Assignee: jsew...@acm.org
          Reporter: peter.klot...@gmail.com
  Target Milestone: ---

Created attachment 135595
  --> https://bugs.kde.org/attachment.cgi?id=135595&action=edit
The test program

The attached program (extracted from a much larger piece of code) gives us this
report:

==2193718== Conditional jump or move depends on uninitialised value(s)
==2193718==    at 0x20199D: main (Standalone.c:33)
==2193718==  Uninitialised value was created by a stack allocation
==2193718==    at 0x201A90: ??? (in a.out)

STEPS TO REPRODUCE
clang -W -Wall -g -O2 Standalone.c && valgrind --track-origins=yes ./a.out

According to objdump the allocation happens in sigaction():
  201a90:       ff 25 ea 21 00 00       jmpq   *0x21ea(%rip)        # 203c80
<sigaction@GLIBC_2.2.5>

The use of the uninitialized memory then occurs in line 33 which reads "if
(hs==hp)".
It is unclear how something that sigaction() does could affect those two local
variables.

Some strange facts about the issue:
 * It only occurs with clang (tested with 11.0.0 and 11.0.1), not with gcc
(8.3.1 and 4.8.5)
 * It only happens when -O2 is specified, not with -O1
 * It occurs under RHEL 8 (glibc 2.28) and Arch Linux (glibc 2.33) but not RHEL
7 (glibc 2.17)
 * The problem goes away if slight, seemingly unrelated modifications are made
to the program
  + Skip assignment to variable pattern[0]
  + Change all size_t variables to unsigned int
  + Call sigaction() only once
  + Replace the myLen() call with a constant

We are in no way sure, this is a Valgrind issue, it could be a miscompile by
clang or a subtle error in the program we are missing. So our hope is that
someone with deeper knowledge can point us into the right direction.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to