mirror of
				https://github.com/alsa-project/alsa-lib.git
				synced 2025-11-03 09:01:52 -05:00 
			
		
		
		
	Added start_threshold sanity checks
This commit is contained in:
		
							parent
							
								
									cf956e032b
								
							
						
					
					
						commit
						9505cbe5d8
					
				
					 1 changed files with 11 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -819,6 +819,16 @@ int snd_pcm_sw_params(snd_pcm_t *pcm, snd_pcm_sw_params_t *params)
 | 
			
		|||
{
 | 
			
		||||
	int err;
 | 
			
		||||
	assert(pcm->setup);		/* the hw_params must be set at first!!! */
 | 
			
		||||
	if (params->start_threshold <= pcm->buffer_size &&
 | 
			
		||||
	    params->start_threshold > (pcm->buffer_size / params->avail_min) * params->avail_min) {
 | 
			
		||||
		SNDERR("snd_pcm_sw_params: params->avail_min problem for start_threshold");
 | 
			
		||||
		return -EINVAL;
 | 
			
		||||
	}
 | 
			
		||||
	if (params->start_threshold <= pcm->buffer_size &&
 | 
			
		||||
	    params->start_threshold > (pcm->buffer_size / params->xfer_align) * params->xfer_align) {
 | 
			
		||||
		SNDERR("snd_pcm_sw_params: params->xfer_align problem for start_threshold");
 | 
			
		||||
		return -EINVAL;
 | 
			
		||||
	}
 | 
			
		||||
	err = pcm->ops->sw_params(pcm->op_arg, params);
 | 
			
		||||
	if (err < 0)
 | 
			
		||||
		return err;
 | 
			
		||||
| 
						 | 
				
			
			@ -6042,7 +6052,6 @@ snd_pcm_sframes_t snd_pcm_write_areas(snd_pcm_t *pcm, const snd_pcm_channel_area
 | 
			
		|||
			if (err < 0)
 | 
			
		||||
				break;
 | 
			
		||||
			goto _again;			
 | 
			
		||||
			
 | 
			
		||||
		}
 | 
			
		||||
		if ((snd_pcm_uframes_t) avail > pcm->xfer_align)
 | 
			
		||||
			avail -= avail % pcm->xfer_align;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue