mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 08:44:41 +00:00 
			
		
		
		
	ALSA: timer: catch invalid timer object creation
A timer object for the classes SNDRV_TIMER_CLASS_CARD and SNDRV_TIMER_CLASS_PCM has to be associated with a card object, but we have no check at creation time. Such a timer object with NULL card causes various unexpected problems, e.g. NULL dereference at reading the sound timer proc file. So as preventive measure while the creating the sound timer object is created the card information availability is checked for the mentioned entries and returned error if its NULL. Signed-off-by: Srikanth K H <srikanth.h@samsung.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
		
							parent
							
								
									7abeb64da6
								
							
						
					
					
						commit
						d10ee9c542
					
				
					 1 changed files with 5 additions and 0 deletions
				
			
		|  | @ -883,6 +883,11 @@ int snd_timer_new(struct snd_card *card, char *id, struct snd_timer_id *tid, | |||
| 
 | ||||
| 	if (snd_BUG_ON(!tid)) | ||||
| 		return -EINVAL; | ||||
| 	if (tid->dev_class == SNDRV_TIMER_CLASS_CARD || | ||||
| 	    tid->dev_class == SNDRV_TIMER_CLASS_PCM) { | ||||
| 		if (WARN_ON(!card)) | ||||
| 			return -EINVAL; | ||||
| 	} | ||||
| 	if (rtimer) | ||||
| 		*rtimer = NULL; | ||||
| 	timer = kzalloc(sizeof(*timer), GFP_KERNEL); | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Srikanth K H
						Srikanth K H