Ignore response in case of failure

When the status indicates failure, the output should be ignored.
Otherwise, conversion may fail and crash.

Fixes: 175840225
Test: CTS audio tests
Change-Id: I2200b720d98714b44e9ad50ebc06e2c07de0289c
diff --git a/media/libaudioclient/AudioTrack.cpp b/media/libaudioclient/AudioTrack.cpp
index 1b1e143..d4cbbc3 100644
--- a/media/libaudioclient/AudioTrack.cpp
+++ b/media/libaudioclient/AudioTrack.cpp
@@ -1609,9 +1609,11 @@
 
     media::CreateTrackResponse response;
     status = audioFlinger->createTrack(VALUE_OR_FATAL(input.toAidl()), response);
-    IAudioFlinger::CreateTrackOutput output = VALUE_OR_FATAL(
-            IAudioFlinger::CreateTrackOutput::fromAidl(
-                    response));
+
+    IAudioFlinger::CreateTrackOutput output{};
+    if (status == NO_ERROR) {
+        output = VALUE_OR_FATAL(IAudioFlinger::CreateTrackOutput::fromAidl(response));
+    }
 
     if (status != NO_ERROR || output.outputId == AUDIO_IO_HANDLE_NONE) {
         ALOGE("%s(%d): AudioFlinger could not create track, status: %d output %d",