https://bugs.freedesktop.org/show_bug.cgi?id=90194
Bug ID: 90194 Summary: Fix Valgrind error in drmPrimeHandleToFD Product: DRI Version: XOrg git Hardware: Other OS: All Status: NEW Severity: normal Priority: medium Component: libdrm Assignee: dri-devel@lists.freedesktop.org Reporter: guillaume.desmottes@collabora.co.uk
args.fd is left uninitialized making Valgrind angry.
==14518== Syscall param ioctl(generic) points to uninitialised byte(s) ==14518== at 0x3EB84F6407: ioctl (syscall-template.S:81) ==14518== by 0x3B01803B17: drmIoctl (xf86drm.c:175) ==14518== by 0x3B01806A7B: drmPrimeHandleToFD (xf86drm.c:2701) ==14518== by 0xDF0866D: drm_intel_bo_gem_export_to_prime (intel_bufmgr_gem.c:2729) ==14518== by 0xDA92DF7: intel_query_image (intel_screen.c:563) ==14518== by 0x32E484E64D: dri3_alloc_render_buffer (dri3_glx.c:926) ==14518== by 0x32E484E64D: dri3_get_buffer.isra.10 (dri3_glx.c:1307) ==14518== by 0x32E484F499: dri3_get_buffers (dri3_glx.c:1466) ==14518== by 0xDAB0486: intel_update_image_buffers (brw_context.c:1475) ==14518== by 0xDAB0486: intel_update_renderbuffers (brw_context.c:1167) ==14518== by 0xDAB07B4: intel_prepare_render (brw_context.c:1188) ==14518== by 0xDAB0906: intelMakeCurrent (brw_context.c:1031) ==14518== by 0xDA51495: driBindContext (dri_util.c:538) ==14518== by 0x32E484DAA9: dri3_bind_context (dri3_glx.c:145) ==14518== by 0x32E481E5E6: MakeContextCurrent (glxcurrent.c:243) ==14518== by 0x8052F3C: gst_gl_context_glx_activate (gstglcontext_glx.c:401) ==14518== by 0x8036D51: gst_gl_context_activate (gstglcontext.c:632) ==14518== by 0x803882C: gst_gl_context_create_thread (gstglcontext.c:1282) ==14518== by 0x3EBB0703D4: g_thread_proxy (gthread.c:764) ==14518== by 0x3EB8807529: start_thread (pthread_create.c:310) ==14518== by 0x3EB850022C: clone (clone.S:109) ==14518== Address 0xd793a18 is on thread 9's stack ==14518== in frame #2, created by drmPrimeHandleToFD (xf86drm.c:2695)
https://bugs.freedesktop.org/show_bug.cgi?id=90194
--- Comment #1 from Guillaume Desmottes guillaume.desmottes@collabora.co.uk --- Created attachment 115375 --> https://bugs.freedesktop.org/attachment.cgi?id=115375&action=edit drmPrimeHandleToFD: initialize args.fd to 0
https://bugs.freedesktop.org/show_bug.cgi?id=90194
--- Comment #2 from Emil Velikov emil.l.velikov@gmail.com --- Hi Guillaume
With args.fd used for output this seems like a false positive. Alternative solution would be to make Valgrind aware of this. A similar issue exists for args.handle in drmPrimeFDToHandle.
I fear that not many people keep track of bugzilla, so please forward your patch to the dri-devel mailing list [1].
Thanks Emil
[1] dri-devel@lists.freedesktop.org
https://bugs.freedesktop.org/show_bug.cgi?id=90194
Guillaume Desmottes guillaume.desmottes@collabora.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #115375|0 |1 is obsolete| |
--- Comment #3 from Guillaume Desmottes guillaume.desmottes@collabora.co.uk --- Created attachment 115403 --> https://bugs.freedesktop.org/attachment.cgi?id=115403&action=edit drmPrime*: initialize output args to 0
Here is a patch for both functions. I agree it's probably a false positive but the fix is simple enough to be worth adding those extra lines and saving people the trouble of debugging those.
I'll send the patch to the list as well.
https://bugs.freedesktop.org/show_bug.cgi?id=90194
--- Comment #4 from Pekka Paalanen ppaalanen@gmail.com --- If you initialize an fd, at least initialize it to the invalid file descriptor -1. Zero is a valid file descriptor and very often already an open one.
https://bugs.freedesktop.org/show_bug.cgi?id=90194
Guillaume Desmottes guillaume.desmottes@collabora.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #115403|0 |1 is obsolete| |
--- Comment #5 from Guillaume Desmottes guillaume.desmottes@collabora.co.uk --- Created attachment 115430 --> https://bugs.freedesktop.org/attachment.cgi?id=115430&action=edit drmPrime*: initialize output args to 0
https://bugs.freedesktop.org/show_bug.cgi?id=90194
Emil Velikov emil.l.velikov@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #6 from Emil Velikov emil.l.velikov@gmail.com --- Added an extra memclear(args) for each function and pushed to master.
Thanks Emil
dri-devel@lists.freedesktop.org