mirror of
				https://github.com/facebook/zstd.git
				synced 2025-10-31 08:37:43 +02:00 
			
		
		
		
	Fix Buffer Overflow in Legacy (v0.3) Raw Literals Decompression
This commit is contained in:
		| @@ -2530,6 +2530,7 @@ static size_t ZSTD_decodeLiteralsBlock(void* ctx, | |||||||
|             const size_t litSize = (MEM_readLE32(istart) & 0xFFFFFF) >> 2;   /* no buffer issue : srcSize >= MIN_CBLOCK_SIZE */ |             const size_t litSize = (MEM_readLE32(istart) & 0xFFFFFF) >> 2;   /* no buffer issue : srcSize >= MIN_CBLOCK_SIZE */ | ||||||
|             if (litSize > srcSize-11)   /* risk of reading too far with wildcopy */ |             if (litSize > srcSize-11)   /* risk of reading too far with wildcopy */ | ||||||
|             { |             { | ||||||
|  |                 if (litSize > BLOCKSIZE) return ERROR(corruption_detected); | ||||||
|                 if (litSize > srcSize-3) return ERROR(corruption_detected); |                 if (litSize > srcSize-3) return ERROR(corruption_detected); | ||||||
|                 memcpy(dctx->litBuffer, istart, litSize); |                 memcpy(dctx->litBuffer, istart, litSize); | ||||||
|                 dctx->litPtr = dctx->litBuffer; |                 dctx->litPtr = dctx->litBuffer; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user