Mesa (master): i965: fix segfault on low memory conditions
Robert Ellison
papillo at kemper.freedesktop.org
Sat May 9 01:12:56 UTC 2009
Module: Mesa
Branch: master
Commit: 44a4abfd4f8695809eaec07df8eeb191d6e017d7
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=44a4abfd4f8695809eaec07df8eeb191d6e017d7
Author: Robert Ellison <papillo at vmware.com>
Date: Fri May 8 14:40:38 2009 -0600
i965: fix segfault on low memory conditions
When out of memory (in at least one case, triggered by a longrunning
memory leak), this code will segfault and crash. By checking for the
out-of-memory condition, the system can continue, and will report
the out-of-memory error later, a much preferable outcome.
---
src/mesa/drivers/dri/i965/brw_wm.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c
index 90d74c2..cd65f57 100644
--- a/src/mesa/drivers/dri/i965/brw_wm.c
+++ b/src/mesa/drivers/dri/i965/brw_wm.c
@@ -146,6 +146,13 @@ static void do_wm_prog( struct brw_context *brw,
if (c == NULL) {
brw->wm.compile_data = calloc(1, sizeof(*brw->wm.compile_data));
c = brw->wm.compile_data;
+ if (c == NULL) {
+ /* Ouch - big out of memory problem. Can't continue
+ * without triggering a segfault, no way to signal,
+ * so just return.
+ */
+ return;
+ }
} else {
memset(c, 0, sizeof(*brw->wm.compile_data));
}
More information about the mesa-commit
mailing list