Summary: | memcheck reports uninitialized bytes on timer_create() while it should not | ||
---|---|---|---|
Product: | [Developer tools] valgrind | Reporter: | Bart Van Assche <bart.vanassche+kde> |
Component: | memcheck | Assignee: | Julian Seward <jseward> |
Status: | CLOSED WORKSFORME | ||
Severity: | normal | CC: | trapni |
Priority: | NOR | ||
Version: | 3.1.1 | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Bart Van Assche
2006-03-29 09:54:08 UTC
The problem is that glibc converts SIGEV_THREAD into SIGEV_SIGNAL by spawning a thread and then doing a SIGEV_SIGNAL timer_create call in the new thread. The sigevent structure that glibc builds in that new thread includes uninitialised data so valgrind is strictly speaking correct (the uninitialised data is padding so won't actually affect anything). you might throw this back to valgrind, as it is checking padding bytes that are never read from. so it would be nice to see valgrind enheanced in a way it won't complain about this anymore. is this possible? Has been solved in glibc. See also http://sources.redhat.com/bugzilla/show_bug.cgi?id=4306 |