Sophie

Sophie

distrib > Mageia > 5 > i586 > by-pkgid > c0e2985724eace480e7bac64070b242c > files > 12

libsndfile-1.0.25-9.4.mga5.src.rpm

--- libsndfile-1.0.25.orig/src/common.c
+++ libsndfile-1.0.25/src/common.c
@@ -672,12 +672,12 @@ psf_binheader_writef (SF_PRIVATE *psf, c
 					/* Write a C string (guaranteed to have a zero terminator). */
 					strptr = va_arg (argptr, char *) ;
 					size = strlen (strptr) + 1 ;
-					size += (size & 1) ;
 					if (psf->rwf_endian == SF_ENDIAN_BIG)
-						header_put_be_int (psf, size) ;
+						header_put_be_int (psf, size + (size & 1)) ;
 					else
-						header_put_le_int (psf, size) ;
+						header_put_le_int (psf, size + (size & 1)) ;
 					memcpy (&(psf->header [psf->headindex]), strptr, size) ;
+					size += (size & 1) ;
 					psf->headindex += size ;
 					psf->header [psf->headindex - 1] = 0 ;
 					count += 4 + size ;
@@ -694,10 +694,9 @@ psf_binheader_writef (SF_PRIVATE *psf, c
 						header_put_be_int (psf, size) ;
 					else
 						header_put_le_int (psf, size) ;
-					memcpy (&(psf->header [psf->headindex]), strptr, size + 1) ;
+					memcpy (&(psf->header [psf->headindex]), strptr, size + (size & 1)) ;
 					size += (size & 1) ;
 					psf->headindex += size ;
-					psf->header [psf->headindex] = 0 ;
 					count += 4 + size ;
 					break ;