mirror of
				https://github.com/webmproject/libwebp.git
				synced 2025-10-31 02:15:42 +01:00 
			
		
		
		
	BackwardReferencesHashChainDistanceOnly: fix segfault on OOM
change CostManager to calloc to avoid frees on undefined pointer values in CostManagerClear() should the cost_model allocation succeed, but the cost_manager allocation fail since: v0.5.0-93-g3e023c17 Speed-up BackwardReferencesHashChainDistanceOnly. Tested: for i in `seq 1 639`; do export MALLOC_FAIL_AT=$i ./examples/cwebp -m 6 -q 100 -lossless jpeg_file done Bug: webp:565 Change-Id: I376d81e6f41eb73529053e9e30c142b4b4f6b45b (cherry picked from commita828a59b49) (cherry picked from commitdd80bb4343) (cherry picked from commit4d0964cd0c)
This commit is contained in:
		| @@ -577,7 +577,7 @@ static int BackwardReferencesHashChainDistanceOnly( | |||||||
|       (CostModel*)WebPSafeCalloc(1ULL, cost_model_size); |       (CostModel*)WebPSafeCalloc(1ULL, cost_model_size); | ||||||
|   VP8LColorCache hashers; |   VP8LColorCache hashers; | ||||||
|   CostManager* cost_manager = |   CostManager* cost_manager = | ||||||
|       (CostManager*)WebPSafeMalloc(1ULL, sizeof(*cost_manager)); |       (CostManager*)WebPSafeCalloc(1ULL, sizeof(*cost_manager)); | ||||||
|   int offset_prev = -1, len_prev = -1; |   int offset_prev = -1, len_prev = -1; | ||||||
|   double offset_cost = -1; |   double offset_cost = -1; | ||||||
|   int first_offset_is_constant = -1;  // initialized with 'impossible' value |   int first_offset_is_constant = -1;  // initialized with 'impossible' value | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user