mirror of
				https://github.com/cookiengineer/audacity
				synced 2025-10-31 06:03:49 +01:00 
			
		
		
		
	in id3.c: psf->fileoffset is a sf_count_t, which is int64_t, which is larger than size_t on a G4 PPC. Since psf_binheader_readf expects that argument to be the smaller size_t, it ends up seeking over and over to the zero position since the larger bits of the variable are all zeros. Patch simply casts to size_t. Patch sent upstream as well.
		
			
				
	
	
		
			23 lines
		
	
	
		
			716 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			716 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
| Index: libsndfile/src/id3.c
 | |
| ===================================================================
 | |
| --- libsndfile/src/id3.c	(revision 11748)
 | |
| +++ libsndfile/src/id3.c	(working copy)
 | |
| @@ -32,7 +32,7 @@
 | |
|  {	unsigned char	buf [10] ;
 | |
|  
 | |
|  	memset (buf, 0, sizeof (buf)) ;
 | |
| -	psf_binheader_readf (psf, "pb", 0, buf, 10) ;
 | |
| +	psf_binheader_readf (psf, "pb", (size_t)0, buf, 10) ;
 | |
|  
 | |
|  	if (buf [0] == 'I' && buf [1] == 'D' && buf [2] == '3')
 | |
|  	{	int	offset = buf [6] & 0x7f ;
 | |
| @@ -48,7 +48,7 @@
 | |
|  
 | |
|  		/* Calculate new file offset and position ourselves there. */
 | |
|  		psf->fileoffset += offset + 10 ;
 | |
| -		psf_binheader_readf (psf, "p", psf->fileoffset) ;
 | |
| +		psf_binheader_readf (psf, "p", (size_t)psf->fileoffset) ;
 | |
|  
 | |
|  		return 1 ;
 | |
|  		} ;
 |