mirror of
				https://github.com/alsa-project/alsa-lib.git
				synced 2025-11-03 09:01:52 -05:00 
			
		
		
		
	topology: builder: Fix possibly uninitialized variable in write_elem_block()
When an empty list is passed to write_elem_block(), it may leave
vendor_type uninitialized.
  builder.c: In function ‘write_elem_block’:
  builder.c:127:8: warning: ‘vendor_type’ may be used uninitialized in this function [-Wmaybe-uninitialized]
    ret = write_block_header(tplg, tplg_type, vendor_type,
          ^
  builder.c:114:33: note: ‘vendor_type’ was declared here
    int ret, wsize = 0, count = 0, vendor_type;
                                   ^
Add an immediate return for count = 0 for avoiding it, and simplify
the code initializing vendor_type without using a one-shot loop.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
			
			
This commit is contained in:
		
							parent
							
								
									03d6b15291
								
							
						
					
					
						commit
						76b9cae026
					
				
					 1 changed files with 4 additions and 5 deletions
				
			
		| 
						 | 
					@ -116,13 +116,12 @@ static int write_elem_block(snd_tplg_t *tplg,
 | 
				
			||||||
	/* count number of elements */
 | 
						/* count number of elements */
 | 
				
			||||||
	list_for_each(pos, base)
 | 
						list_for_each(pos, base)
 | 
				
			||||||
		count++;
 | 
							count++;
 | 
				
			||||||
 | 
						if (!count)
 | 
				
			||||||
 | 
							return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* write the header for this block */
 | 
						/* write the header for this block */
 | 
				
			||||||
	list_for_each(pos, base) {
 | 
						elem = list_entry(base->next, struct tplg_elem, list);
 | 
				
			||||||
		elem = list_entry(pos, struct tplg_elem, list);
 | 
					 | 
				
			||||||
	vendor_type = elem->vendor_type;
 | 
						vendor_type = elem->vendor_type;
 | 
				
			||||||
		break;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ret = write_block_header(tplg, tplg_type, vendor_type,
 | 
						ret = write_block_header(tplg, tplg_type, vendor_type,
 | 
				
			||||||
		SND_SOC_TPLG_ABI_VERSION, 0, size, count);
 | 
							SND_SOC_TPLG_ABI_VERSION, 0, size, count);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue