Mesa (master): r300g: fix possible crash when shader compilation fails

Marek Olšák mareko at kemper.freedesktop.org
Wed Apr 14 16:30:39 UTC 2010


Module: Mesa
Branch: master
Commit: d72f1c3b80f84e8bceb414439b679b3fe71ec5b9
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d72f1c3b80f84e8bceb414439b679b3fe71ec5b9

Author: Marek Olšák <maraeo at gmail.com>
Date:   Wed Apr 14 20:23:15 2010 +0200

r300g: fix possible crash when shader compilation fails

This hopefully fixes the crash in the FDO bug #27634, not the bug itself.

---

 src/gallium/drivers/r300/r300_fs.c |    3 +++
 src/gallium/drivers/r300/r300_vs.c |    3 +++
 2 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_fs.c b/src/gallium/drivers/r300/r300_fs.c
index 8da0796..3cddf98 100644
--- a/src/gallium/drivers/r300/r300_fs.c
+++ b/src/gallium/drivers/r300/r300_fs.c
@@ -278,7 +278,10 @@ static void r300_translate_fragment_shader(
                     "Giving up...\n");
             abort();
         }
+
+        rc_destroy(&compiler.Base);
         r300_dummy_fragment_shader(r300, shader);
+        return;
     }
 
     /* Initialize numbers of constants for each type. */
diff --git a/src/gallium/drivers/r300/r300_vs.c b/src/gallium/drivers/r300/r300_vs.c
index 8137972..bfab9c3 100644
--- a/src/gallium/drivers/r300/r300_vs.c
+++ b/src/gallium/drivers/r300/r300_vs.c
@@ -330,7 +330,10 @@ void r300_translate_vertex_shader(struct r300_context* r300,
                     "Giving up...\n");
             abort();
         }
+
+        rc_destroy(&compiler.Base);
         r300_dummy_vertex_shader(r300, vs);
+        return;
     }
 
     /* Initialize numbers of constants for each type. */




More information about the mesa-commit mailing list