Valgrind reports false positives for V4L ioctls

Bug #432477 reported by Guillaume Desmottes
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
gst-plugins-good
Unknown
Medium
libv4l (Ubuntu)
Invalid
Medium
Unassigned
valgrind (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

Got this error when valgrinding an audio/video call in Empathy:

=5989== Syscall param ioctl(generic) points to uninitialised byte(s)
==5989== at 0xB827B79: syscall (syscall.S:39)
==5989== by 0x28699BFB: v4l2_fd_open (libv4l2.c:474)
==5989== by 0x2848CD36: gst_v4l2_open (v4l2_calls.c:437)
==5989== by 0x2848213A: gst_v4l2_object_start (gstv4l2object.c:585)
==5989== by 0x2848866B: gst_v4l2src_change_state (gstv4l2src.c:749)
==5989== by 0x6E66AEB: gst_element_change_state (gstelement.c:2548)
==5989== by 0x6E69C57: gst_element_set_state_func (gstelement.c:2504)
==5989== by 0x6E565B0: gst_bin_change_state_func (gstbin.c:2118)
==5989== by 0x6E66AEB: gst_element_change_state (gstelement.c:2548)
==5989== by 0x6E69C57: gst_element_set_state_func (gstelement.c:2504)
==5989== by 0x6E565B0: gst_bin_change_state_func (gstbin.c:2118)
==5989== by 0x217EF8D7: gst_gconf_video_src_change_state (gstgconfvideosrc.c:238)
==5989== by 0x6E66AEB: gst_element_change_state (gstelement.c:2548)
==5989== by 0x6E69C57: gst_element_set_state_func (gstelement.c:2504)
==5989== by 0x6E565B0: gst_bin_change_state_func (gstbin.c:2118)
==5989== by 0x6E66AEB: gst_element_change_state (gstelement.c:2548)
==5989== by 0x6E69C57: gst_element_set_state_func (gstelement.c:2504)
==5989== by 0x420F3F: empathy_call_window_setup_video_preview (empathy-call-window.c:665)
==5989== by 0x4210C7: empathy_call_window_sink_added_cb (empathy-call-window.c:1581)
==5989== by 0xB04567D: g_closure_invoke (gclosure.c:767)
==5989== Address 0x7feffe724 is on thread 1's stack
==5989==
==5989== Syscall param ioctl(generic) points to uninitialised byte(s)
==5989== at 0xB827B79: syscall (syscall.S:39)
==5989== by 0x288B19DE: v4lcontrol_create (libv4lcontrol.c:152)
==5989== by 0x288A637C: v4lconvert_create (libv4lconvert.c:139)
==5989== by 0x28699C91: v4l2_fd_open (libv4l2.c:482)
==5989== by 0x2848CD36: gst_v4l2_open (v4l2_calls.c:437)
==5989== by 0x2848213A: gst_v4l2_object_start (gstv4l2object.c:585)
==5989== by 0x2848866B: gst_v4l2src_change_state (gstv4l2src.c:749)
==5989== by 0x6E66AEB: gst_element_change_state (gstelement.c:2548)
==5989== by 0x6E69C57: gst_element_set_state_func (gstelement.c:2504)
==5989== by 0x6E565B0: gst_bin_change_state_func (gstbin.c:2118)
==5989== by 0x6E66AEB: gst_element_change_state (gstelement.c:2548)
==5989== by 0x6E69C57: gst_element_set_state_func (gstelement.c:2504)
==5989== by 0x6E565B0: gst_bin_change_state_func (gstbin.c:2118)
==5989== by 0x217EF8D7: gst_gconf_video_src_change_state (gstgconfvideosrc.c:238)
==5989== by 0x6E66AEB: gst_element_change_state (gstelement.c:2548)
==5989== by 0x6E69C57: gst_element_set_state_func (gstelement.c:2504)
==5989== by 0x6E565B0: gst_bin_change_state_func (gstbin.c:2118)
==5989== by 0x6E66AEB: gst_element_change_state (gstelement.c:2548)
==5989== by 0x6E69C57: gst_element_set_state_func (gstelement.c:2504)
==5989== by 0x420F3F: empathy_call_window_setup_video_preview (empathy-call-window.c:665)
==5989== Address 0x7feffe4b4 is on thread 1's stack
==5989==
==5989== Syscall param ioctl(generic) points to uninitialised byte(s)
==5989== at 0xB827B79: syscall (syscall.S:39)
==5989== by 0x288B1F5A: v4lcontrol_create (libv4lcontrol.c:288)
==5989== by 0x288A637C: v4lconvert_create (libv4lconvert.c:139)
==5989== by 0x28699C91: v4l2_fd_open (libv4l2.c:482)
==5989== by 0x2848CD36: gst_v4l2_open (v4l2_calls.c:437)
==5989== by 0x2848213A: gst_v4l2_object_start (gstv4l2object.c:585)
==5989== by 0x2848866B: gst_v4l2src_change_state (gstv4l2src.c:749)
==5989== by 0x6E66AEB: gst_element_change_state (gstelement.c:2548)
==5989== by 0x6E69C57: gst_element_set_state_func (gstelement.c:2504)
==5989== by 0x6E565B0: gst_bin_change_state_func (gstbin.c:2118)
==5989== by 0x6E66AEB: gst_element_change_state (gstelement.c:2548)
==5989== by 0x6E69C57: gst_element_set_state_func (gstelement.c:2504)
==5989== by 0x6E565B0: gst_bin_change_state_func (gstbin.c:2118)
==5989== by 0x217EF8D7: gst_gconf_video_src_change_state (gstgconfvideosrc.c:238)
==5989== by 0x6E66AEB: gst_element_change_state (gstelement.c:2548)
==5989== by 0x6E69C57: gst_element_set_state_func (gstelement.c:2504)
==5989== by 0x6E565B0: gst_bin_change_state_func (gstbin.c:2118)
==5989== by 0x6E66AEB: gst_element_change_state (gstelement.c:2548)
==5989== by 0x6E69C57: gst_element_set_state_func (gstelement.c:2504)
==5989== by 0x420F3F: empathy_call_window_setup_video_preview (empathy-call-window.c:665)
==5989== Address 0x7feffe504 is on thread 1's stack
==5989==
==5989== Syscall param ioctl(generic) points to uninitialised byte(s)
==5989== at 0xB827B79: syscall (syscall.S:39)
==5989== by 0x2869904B: v4l2_map_buffers (libv4l2.c:150)
==5989== by 0x2869B1D7: v4l2_ioctl (libv4l2.c:982)
==5989== by 0x28484D79: gst_v4l2_buffer_pool_qbuf (gstv4l2bufferpool.c:475)
==5989== by 0x2848E49E: gst_v4l2src_capture_start (v4l2src_calls.c:72)
==5989== by 0x28488350: gst_v4l2src_set_caps (gstv4l2src.c:620)
==5989== by 0x6E7E938: gst_pad_set_caps (gstpad.c:2526)
==5989== by 0x28487027: gst_v4l2src_negotiate (gstv4l2src.c:507)
==5989== by 0xC42E65C: gst_base_src_start (gstbasesrc.c:2491)
==5989== by 0xC434547: gst_base_src_activate_push (gstbasesrc.c:2739)
==5989== by 0x6E832BA: gst_pad_activate_push (gstpad.c:915)
==5989== by 0x6E83E66: gst_pad_set_active (gstpad.c:671)
==5989== by 0x6E65A4A: activate_pads (gstelement.c:2632)
==5989== by 0x6E76F6D: gst_iterator_fold (gstiterator.c:545)
==5989== by 0x6E659B5: iterator_activate_fold_with_resync (gstelement.c:2664)
==5989== by 0x6E67D4E: gst_element_pads_activate (gstelement.c:2701)
==5989== by 0x6E69F7E: gst_element_change_state_func (gstelement.c:2778)
==5989== by 0xC433173: gst_base_src_change_state (gstbasesrc.c:2877)
==5989== by 0x2848863E: gst_v4l2src_change_state (gstv4l2src.c:756)
==5989== by 0x6E66AEB: gst_element_change_state (gstelement.c:2548)
==5989== Address 0x7feffe2e8 is on thread 1's stack

ProblemType: Bug
Architecture: amd64
Date: Fri Sep 18 14:13:06 2009
DistroRelease: Ubuntu 9.10
Package: gstreamer0.10-plugins-good 0.10.16-1ubuntu2
ProcEnviron:
 PATH=(custom, user)
 LANG=fr_FR.UTF-8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.31-10.32-generic
SourcePackage: gst-plugins-good0.10
Uname: Linux 2.6.31-10-generic x86_64

Revision history for this message
Guillaume Desmottes (cassidy) wrote :
Changed in gst-plugins-good:
status: Unknown → New
Changed in gst-plugins-good0.10 (Ubuntu):
importance: Undecided → Medium
status: New → Triaged
assignee: nobody → Ubuntu Desktop Bugs (desktop-bugs)
milestone: none → ubuntu-9.10
Revision history for this message
Guillaume Desmottes (cassidy) wrote :

According to Gstreamer developpers, this is a libv4l issue.

affects: gst-plugins-good0.10 (Ubuntu) → libv4l (Ubuntu)
Revision history for this message
Guillaume Desmottes (cassidy) wrote :

Do you know where is locate libv4l's bugs tracker? I didn't find it.

Revision history for this message
Sebastien Bacher (seb128) wrote :

not really a desktop team task, dunno who is upstream no

Changed in libv4l (Ubuntu):
assignee: Ubuntu Desktop Bugs (desktop-bugs) → nobody
milestone: ubuntu-9.10 → none
Revision history for this message
Gregor Jasny (gjasny) wrote :

Hi,

this is no bug in libv4l but a shortcoming in valgrind.

IOCTL doc:
To query the current parameters applications set the type field of a struct v4l2_format to the respective buffer (stream) type.

CODE:
struct v4l2_format fmt;
...
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
if (SYS_IOCTL(fd, VIDIOC_G_FMT, &fmt)) {

So it is completely legal to just initialize the 'type' field.

I suggest to either close this bug or reassign to valgrind.

Thanks,
Gregor

Changed in gst-plugins-good:
importance: Unknown → Medium
status: New → Unknown
Gregor Jasny (gjasny)
summary: - Syscall param ioctl(generic) points to uninitialised byte(s) in
- v4l2_fd_open
+ Valgrind reports false positives for V4L ioctls
Changed in libv4l (Ubuntu):
status: Triaged → Invalid
Revision history for this message
Matthias Klose (doko) wrote :

closing this very old issue. please recheck with newer releases

Changed in valgrind (Ubuntu):
status: New → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.