diff options
author | Marek Olšák <maraeo@gmail.com> | 2013-01-28 02:47:24 +0100 |
---|---|---|
committer | Marek Olšák <maraeo@gmail.com> | 2013-01-28 02:51:52 +0100 |
commit | 87592cff57feef29565150b9203e220b50623f30 (patch) | |
tree | bdd2562a0812808efe25773e397184f9d73b03f3 /src | |
parent | e058f2ac97eebbe86fc77ef607ce1cfdcab2cc19 (diff) |
gallium/u_upload_mgr: fix a serious memory leak
It can eat all memory and crash in a matter of minutes with r600g.
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/auxiliary/util/u_upload_mgr.c | 3 |
1 files changed, 1 insertions, 2 deletions
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; } |