main: Avoid double-free of shader Label
authorCarl Worth <cworth@cworth.org>
Thu, 13 Feb 2014 17:49:27 +0000 (09:49 -0800)
committerCarl Worth <cworth@cworth.org>
Fri, 14 Feb 2014 19:45:48 +0000 (11:45 -0800)
commita92581acf2aba5e5e9fa199b778e649d5741754d
treeb3c3716e14e12dca4b93c50eab9379d1234c3667
parente4a5a9fd2fdd5b5ae8b85ac743a228f409a21a70
main: Avoid double-free of shader Label

As documented, the _mesa_free_shader_program_data function:

"Frees all the data that hangs off a shader program object, but not
the object itself."

This means that this function may be called multiple times on the same object,
(and has been observed to). Meanwhile, the shProg->Label field was not being
set to NULL after its free(). This led to a second call to free() of the same
address on the second call to this function.

Fix this by setting this field to NULL after free(), (just as with all other
calls to free() in this function).

Reviewed-by: Brian Paul <brianp@vmware.com>
CC: mesa-stable@lists.freedesktop.org
src/mesa/main/shaderobj.c