mirror of
				https://github.com/facebook/zstd.git
				synced 2025-10-31 16:47:48 +02:00 
			
		
		
		
	[decompress] Fix nullptr addition & improve fuzzer
Fix an instance of `NULL + 0` in `ZSTD_decompressStream()`. Also, improve our `stream_decompress` fuzzer to pass `NULL` in/out buffers to `ZSTD_decompressStream()`, and fix 2 issues that were immediately surfaced. Fixes #3351
This commit is contained in:
		
				
					committed by
					
						 Nick Terrell
						Nick Terrell
					
				
			
			
				
	
			
			
			
						parent
						
							15f32ad74c
						
					
				
				
					commit
					f31b83ff34
				
			| @@ -4029,7 +4029,8 @@ size_t ZBUFFv06_decompressContinue(ZBUFFv06_DCtx* zbd, | ||||
|                     size_t const toLoad = hSize - zbd->lhSize;   /* if hSize!=0, hSize > zbd->lhSize */ | ||||
|                     if (ZSTDv06_isError(hSize)) return hSize; | ||||
|                     if (toLoad > (size_t)(iend-ip)) {   /* not enough input to load full header */ | ||||
|                         memcpy(zbd->headerBuffer + zbd->lhSize, ip, iend-ip); | ||||
|                         if (ip != NULL) | ||||
|                             memcpy(zbd->headerBuffer + zbd->lhSize, ip, iend-ip); | ||||
|                         zbd->lhSize += iend-ip; | ||||
|                         *dstCapacityPtr = 0; | ||||
|                         return (hSize - zbd->lhSize) + ZSTDv06_blockHeaderSize;   /* remaining header bytes + next block header */ | ||||
|   | ||||
| @@ -4411,7 +4411,8 @@ size_t ZBUFFv07_decompressContinue(ZBUFFv07_DCtx* zbd, | ||||
|                 if (hSize != 0) { | ||||
|                     size_t const toLoad = hSize - zbd->lhSize;   /* if hSize!=0, hSize > zbd->lhSize */ | ||||
|                     if (toLoad > (size_t)(iend-ip)) {   /* not enough input to load full header */ | ||||
|                         memcpy(zbd->headerBuffer + zbd->lhSize, ip, iend-ip); | ||||
|                         if (ip != NULL) | ||||
|                             memcpy(zbd->headerBuffer + zbd->lhSize, ip, iend-ip); | ||||
|                         zbd->lhSize += iend-ip; | ||||
|                         *dstCapacityPtr = 0; | ||||
|                         return (hSize - zbd->lhSize) + ZSTDv07_blockHeaderSize;   /* remaining header bytes + next block header */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user