Parcourir la source

testaudio: Don't crash if SDL_GetAudioDeviceName() returns NULL.

It definitely will for default devices, so this crash is real, but it's also
good defensive coding if something blows up unexpectedly.

Fixes #10130.
Ryan C. Gordon il y a 9 mois
Parent
commit
5631c6dbaa
1 fichiers modifiés avec 5 ajouts et 1 suppressions
  1. 5 1
      test/testaudio.c

+ 5 - 1
test/testaudio.c

@@ -983,9 +983,13 @@ static Thing *CreatePhysicalDeviceThing(const SDL_AudioDeviceID which, const SDL
     SDL_Log("Adding physical audio device %u", (unsigned int) which);
     thing = CreateThing(recording ? THING_PHYSDEV_RECORDING : THING_PHYSDEV, next_physdev_x, 170, 5, -1, -1, physdev_texture, NULL);
     if (thing) {
+        const char *name = SDL_GetAudioDeviceName(which);
+        if (!name) {
+            name = "[Unnamed device]";
+        }
         thing->data.physdev.devid = which;
         thing->data.physdev.recording = recording;
-        thing->data.physdev.name = SDL_strdup(SDL_GetAudioDeviceName(which));
+        thing->data.physdev.name = SDL_strdup(name);
         thing->ondrag = DeviceThing_ondrag;
         thing->ondrop = PhysicalDeviceThing_ondrop;
         thing->ontick = PhysicalDeviceThing_ontick;