mirror of
				https://github.com/alsa-project/alsa-lib.git
				synced 2025-11-03 09:01:52 -05:00 
			
		
		
		
	ucm: Return NULL from get_list0() and get_list20() in case of empty lists.
alloc_str_list() sets the result to NULL too, so this patch makes the behavior more consistent. This also fixes a crash in PulseAudio, because PulseAudio assumes that snd_use_case_get_list() always initializes the result, and since snd_use_case_get_list() uses get_list20(), this assumption didn't hold. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
		
							parent
							
								
									480d3204fe
								
							
						
					
					
						commit
						e16a9a04b1
					
				
					 1 changed files with 6 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -367,8 +367,10 @@ static int get_list0(struct list_head *list,
 | 
			
		|||
	char *ptr, *str1;
 | 
			
		||||
 | 
			
		||||
	cnt = alloc_str_list(list, 1, &res);
 | 
			
		||||
	if (cnt <= 0)
 | 
			
		||||
	if (cnt <= 0) {
 | 
			
		||||
		*result = NULL;
 | 
			
		||||
	        return cnt;
 | 
			
		||||
	}
 | 
			
		||||
	*result = (const char **)res;
 | 
			
		||||
	list_for_each(pos, list) {
 | 
			
		||||
		ptr = list_entry_offset(pos, char, offset);
 | 
			
		||||
| 
						 | 
				
			
			@ -414,8 +416,10 @@ static int get_list20(struct list_head *list,
 | 
			
		|||
	char *ptr, *str1, *str2;
 | 
			
		||||
 | 
			
		||||
	cnt = alloc_str_list(list, 2, &res);
 | 
			
		||||
	if (cnt <= 0)
 | 
			
		||||
	if (cnt <= 0) {
 | 
			
		||||
		*result = NULL;
 | 
			
		||||
	        return cnt;
 | 
			
		||||
	}
 | 
			
		||||
        *result = (const char **)res;
 | 
			
		||||
	list_for_each(pos, list) {
 | 
			
		||||
		ptr = list_entry_offset(pos, char, offset);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue