audio: release capture buffers
authorGerd Hoffmann <kraxel@redhat.com>
Fri, 28 Apr 2017 07:56:12 +0000 (09:56 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Thu, 4 May 2017 06:31:48 +0000 (08:31 +0200)
AUD_add_capture() allocates two buffers which are never released.
Add the missing calls to AUD_del_capture().

Impact: Allows vnc clients to exhaust host memory by repeatedly
starting and stopping audio capture.

Fixes: CVE-2017-8309
Cc: P J P <ppandit@redhat.com>
Cc: Huawei PSIRT <PSIRT@huawei.com>
Reported-by: "Jiangxin (hunter, SCC)" <jiangxin1@huawei.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Prasad J Pandit <pjp@fedoraproject.org>
Message-id: 20170428075612.9997-1-kraxel@redhat.com

audio/audio.c

index c8898d8422d58b6ec8cd4a9a09790234eff164df..beafed209bde7e3905c90b2a51df7d6d152ad044 100644 (file)
@@ -2028,6 +2028,8 @@ void AUD_del_capture (CaptureVoiceOut *cap, void *cb_opaque)
                     sw = sw1;
                 }
                 QLIST_REMOVE (cap, entries);
+                g_free (cap->hw.mix_buf);
+                g_free (cap->buf);
                 g_free (cap);
             }
             return;