* gnu/packages/patches/wavpack-CVE-2018-7253.patch, gnu/packages/patches/wavpack-CVE-2018-7254.patch: New files. * gnu/local.mk (dist_patch_DATA): Register them. * gnu/packages/audio.scm (wavpack)[source](patches): Use them.
		
			
				
	
	
		
			29 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| Fix CVE-2018-7253:
 | |
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-7253
 | |
| 
 | |
| Copied from upstream:
 | |
| https://github.com/dbry/WavPack/commit/36a24c7881427d2e1e4dc1cef58f19eee0d13aec
 | |
| 
 | |
| diff --git a/cli/dsdiff.c b/cli/dsdiff.c
 | |
| index 410dc1c..c016df9 100644
 | |
| --- a/cli/dsdiff.c
 | |
| +++ b/cli/dsdiff.c
 | |
| @@ -153,7 +153,17 @@ int ParseDsdiffHeaderConfig (FILE *infile, char *infilename, char *fourcc, Wavpa
 | |
|                  error_line ("dsdiff file version = 0x%08x", version);
 | |
|          }
 | |
|          else if (!strncmp (dff_chunk_header.ckID, "PROP", 4)) {
 | |
| -            char *prop_chunk = malloc ((size_t) dff_chunk_header.ckDataSize);
 | |
| +            char *prop_chunk;
 | |
| +
 | |
| +            if (dff_chunk_header.ckDataSize < 4 || dff_chunk_header.ckDataSize > 1024) {
 | |
| +                error_line ("%s is not a valid .DFF file!", infilename);
 | |
| +                return WAVPACK_SOFT_ERROR;
 | |
| +            }
 | |
| +
 | |
| +            if (debug_logging_mode)
 | |
| +                error_line ("got PROP chunk of %d bytes total", (int) dff_chunk_header.ckDataSize);
 | |
| +
 | |
| +            prop_chunk = malloc ((size_t) dff_chunk_header.ckDataSize);
 | |
|  
 | |
|              if (!DoReadFile (infile, prop_chunk, (uint32_t) dff_chunk_header.ckDataSize, &bcount) ||
 | |
|                  bcount != dff_chunk_header.ckDataSize) {
 |