winsys/virgl: avoid unintended behavior
authorErik Faye-Lund <erik.faye-lund@collabora.com>
Thu, 6 Sep 2018 10:21:53 +0000 (11:21 +0100)
committerErik Faye-Lund <erik.faye-lund@collabora.com>
Wed, 12 Sep 2018 08:14:43 +0000 (10:14 +0200)
commiteaa718588ee97241cdbfea0b49bc30d93a99667c
tree17fd19e538af1d14ad34ccbde7b9c1bf5f711449
parentd631916f295d8e40e7f9e329bd285a32f2747c3c
winsys/virgl: avoid unintended behavior

If we end up never taking the loop that writes ret, we can end up with
an uninitialized value, and if we're *really* unlucky, that value can
be -1, causing us to go down an error-path instead of a success path.

This was obviously not intended, so let's just initialize this to zero.

Noticed by Valgrind:

Conditional jump or move depends on uninitialised value(s)
   at 0xBA640A0: virgl_drm_winsys_resource_cache_create (virgl_drm_winsys.c:348)
   by 0xBA62FCF: virgl_buffer_create (virgl_buffer.c:170)
   by 0xBA605AC: virgl_resource_create (virgl_resource.c:60)
   by 0xBCF816F: bufferobj_data (st_cb_bufferobjects.c:344)
   by 0xBCF816F: st_bufferobj_data (st_cb_bufferobjects.c:390)
   by 0xBB7E836: vbo_use_buffer_objects (vbo_exec_api.c:1136)
   by 0xBCFCC6E: st_create_context_priv (st_context.c:414)
   by 0xBCFD3CD: st_create_context (st_context.c:590)
   by 0xBBB30CA: st_api_create_context (st_manager.c:896)
   by 0xB981E76: dri_create_context (dri_context.c:155)
   by 0xB97BDCE: driCreateContextAttribs (dri_util.c:473)
   by 0x5288331: dri3_create_context_attribs (dri3_glx.c:309)
   by 0x5264D64: glXCreateContextAttribsARB (create_context.c:78)

Fixes: a8987b88ff1 ("virgl: add driver for virtio-gpu 3D (v2)")
Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
src/gallium/winsys/virgl/drm/virgl_drm_winsys.c