mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-10-29 05:40:23 -04:00 
			
		
		
		
	memblockq: Drop check for chunk index alignment, require aligned length
There is no requirement for chunk index to be aligned, we only need chunk length to be multiple of sample frame size. Fixes:6434853b0("memblockq: Do not allow non-frame indices in the memblock queue") Fixes:22827a5e1("protocol-native: Fail if trying to push unaligned memblock into queue") Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/779>
This commit is contained in:
		
							parent
							
								
									5ab2b9cb0e
								
							
						
					
					
						commit
						15e76a69bf
					
				
					 2 changed files with 3 additions and 4 deletions
				
			
		|  | @ -286,7 +286,6 @@ int pa_memblockq_push(pa_memblockq* bq, const pa_memchunk *uchunk) { | ||||||
|     pa_assert(uchunk->index + uchunk->length <= pa_memblock_get_length(uchunk->memblock)); |     pa_assert(uchunk->index + uchunk->length <= pa_memblock_get_length(uchunk->memblock)); | ||||||
| 
 | 
 | ||||||
|     pa_assert(uchunk->length % bq->base == 0); |     pa_assert(uchunk->length % bq->base == 0); | ||||||
|     pa_assert(uchunk->index % bq->base == 0); |  | ||||||
| 
 | 
 | ||||||
|     if (!can_push(bq, uchunk->length)) |     if (!can_push(bq, uchunk->length)) | ||||||
|         return -1; |         return -1; | ||||||
|  |  | ||||||
|  | @ -5068,9 +5068,9 @@ static void pstream_memblock_callback(pa_pstream *p, uint32_t channel, int64_t o | ||||||
|         playback_stream *ps = PLAYBACK_STREAM(stream); |         playback_stream *ps = PLAYBACK_STREAM(stream); | ||||||
| 
 | 
 | ||||||
|         size_t frame_size = pa_frame_size(&ps->sink_input->sample_spec); |         size_t frame_size = pa_frame_size(&ps->sink_input->sample_spec); | ||||||
|         if (chunk->index % frame_size != 0 || chunk->length % frame_size != 0) { |         if (chunk->length % frame_size != 0) { | ||||||
|             pa_log_warn("Client sent non-aligned memblock: index %d, length %d, frame size: %d", |             pa_log_warn("Client sent non-aligned memblock: length %d, frame size: %d", | ||||||
|                         (int) chunk->index, (int) chunk->length, (int) frame_size); |                         (int) chunk->length, (int) frame_size); | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Igor V. Kovalenko
						Igor V. Kovalenko