From: Marek Olšák Date: Mon, 28 Jan 2013 01:47:24 +0000 (+0100) Subject: gallium/u_upload_mgr: fix a serious memory leak X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=87592cff57feef29565150b9203e220b50623f30;p=mesa.git gallium/u_upload_mgr: fix a serious memory leak It can eat all memory and crash in a matter of minutes with r600g. --- diff --git a/src/gallium/auxiliary/util/u_upload_mgr.c b/src/gallium/auxiliary/util/u_upload_mgr.c index 47d39af67aa..6859751c591 100644 --- a/src/gallium/auxiliary/util/u_upload_mgr.c +++ b/src/gallium/auxiliary/util/u_upload_mgr.c @@ -167,7 +167,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 @@ -189,7 +189,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; }