diff options
| author | Robert Ellison <papillo@vmware.com> | 2009-05-08 14:40:38 -0600 | 
|---|---|---|
| committer | Ian Romanick <ian.d.romanick@intel.com> | 2009-06-17 12:55:26 -0700 | 
| commit | e15aebe10e20aacce63175b68ec8daa5c1dc4e0c (patch) | |
| tree | 42d69d2e49f21ab43768dcda8158585980331fe9 | |
| parent | a70c45bdabd8a172de6c50167b3e9d99649db1fa (diff) | |
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.
(cherry picked from commit 44a4abfd4f8695809eaec07df8eeb191d6e017d7)
| -rw-r--r-- | 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 bd296aa2a7..8a3b7df9c7 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));     } | 
