]> git.sesse.net Git - vlc/commitdiff
auhal: fix memleak, check malloc return value
authorDavid Fuhrmann <dfuhrmann@videolan.org>
Sun, 28 Dec 2014 16:21:10 +0000 (17:21 +0100)
committerDavid Fuhrmann <dfuhrmann@videolan.org>
Tue, 30 Dec 2014 15:10:49 +0000 (16:10 +0100)
modules/audio_output/auhal.c

index 9bdd4fd6d835e78390eb200a4b48d5a48ddc11af..b7a751d5640e703ea33f542af0111cc9a195d59e 100644 (file)
@@ -1265,8 +1265,13 @@ static void RebuildDeviceList(audio_output_t * p_aout)
         }
         length = CFStringGetLength(device_name_ref);
         length++;
-        psz_name = (char *)malloc(length);
+        psz_name = malloc(length);
+        if (!psz_name) {
+            CFRelease(device_name_ref);
+            return;
+        }
         CFStringGetCString(device_name_ref, psz_name, length, kCFStringEncodingUTF8);
+        CFRelease(device_name_ref);
 
         msg_Dbg(p_aout, "DevID: %i DevName: %s", deviceIDs[i], psz_name);
 
@@ -1296,7 +1301,6 @@ static void RebuildDeviceList(audio_output_t * p_aout)
         // TODO: only register once for each device
         ManageAudioStreamsCallback(p_aout, deviceIDs[i], true);
 
-        CFRelease(device_name_ref);
         free(psz_name);
     }