pulse-server: avoid returning NULL strings

Don't return a NULL string when converting an id to a string because
some callers don't expect this and crash.
This commit is contained in:
Wim Taymans 2021-03-25 15:33:18 +01:00
parent 05beb04259
commit 2d2557381c

View file

@ -129,7 +129,8 @@ static inline const char *format_id2paname(uint32_t id)
{ {
size_t i; size_t i;
for (i = 0; i < SPA_N_ELEMENTS(audio_formats); i++) { for (i = 0; i < SPA_N_ELEMENTS(audio_formats); i++) {
if (id == audio_formats[i].id) if (id == audio_formats[i].id &&
audio_formats[i].name != NULL)
return audio_formats[i].name; return audio_formats[i].name;
} }
return "invalid"; return "invalid";
@ -371,7 +372,8 @@ static inline const char *channel_id2paname(uint32_t id, uint32_t *aux)
{ {
size_t i; size_t i;
for (i = 0; i < SPA_N_ELEMENTS(audio_channels); i++) { for (i = 0; i < SPA_N_ELEMENTS(audio_channels); i++) {
if (id == audio_channels[i].channel) if (id == audio_channels[i].channel &&
audio_channels[i].name != NULL)
return audio_channels[i].name; return audio_channels[i].name;
} }
return audio_channels[CHANNEL_POSITION_AUX0 + (*aux)++].name; return audio_channels[CHANNEL_POSITION_AUX0 + (*aux)++].name;
@ -512,7 +514,8 @@ static const char *encoding_names[] = {
static inline const char *format_encoding2name(enum encoding enc) static inline const char *format_encoding2name(enum encoding enc)
{ {
if (enc >= 0 && enc < (int)SPA_N_ELEMENTS(encoding_names)) if (enc >= 0 && enc < (int)SPA_N_ELEMENTS(encoding_names) &&
encoding_names[enc] != NULL)
return encoding_names[enc]; return encoding_names[enc];
return "INVALID"; return "INVALID";
} }