From d40df8073209e54c943d3ecaa20cf3297a765907 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Mon, 28 Jan 2013 02:47:24 +0100 Subject: [PATCH] gallium/u_upload_mgr: fix a serious memory leak It can eat all memory and crash in a matter of minutes with r600g. (cherry picked from commit 87592cff57feef29565150b9203e220b50623f30) --- src/gallium/auxiliary/util/u_upload_mgr.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/gallium/auxiliary/util/u_upload_mgr.c b/src/gallium/auxiliary/util/u_upload_mgr.c index 21d4bca4b9d..cb42e981fc8 100644 --- a/src/gallium/auxiliary/util/u_upload_mgr.c +++ b/src/gallium/auxiliary/util/u_upload_mgr.c @@ -168,7 +168,7 @@ enum pipe_error u_upload_alloc( struct u_upload_mgr *upload, * sure the caller doesn't get garbage values. */ *out_offset = ~0; - *outbuf = NULL; + pipe_resource_reference(outbuf, NULL); *ptr = NULL; /* Make sure we have enough space in the upload buffer @@ -190,7 +190,6 @@ enum pipe_error u_upload_alloc( struct u_upload_mgr *upload, PIPE_TRANSFER_UNSYNCHRONIZED, &upload->transfer); if (!upload->map) { - pipe_resource_reference(outbuf, NULL); upload->transfer = NULL; return PIPE_ERROR_OUT_OF_MEMORY; }