115 lines
3.7 KiB
Diff
115 lines
3.7 KiB
Diff
|
diff -up libsndfile-1.0.28/src/common.c.vafix libsndfile-1.0.28/src/common.c
|
||
|
--- libsndfile-1.0.28/src/common.c.vafix 2018-10-15 14:31:59.805758665 +0200
|
||
|
+++ libsndfile-1.0.28/src/common.c 2018-10-15 14:34:48.978445310 +0200
|
||
|
@@ -561,7 +561,10 @@ psf_binheader_writef (SF_PRIVATE *psf, c
|
||
|
while ((c = *format++))
|
||
|
{
|
||
|
if (psf->header.indx + 16 >= psf->header.len && psf_bump_header_allocation (psf, 16))
|
||
|
+ {
|
||
|
+ va_end (argptr) ;
|
||
|
return count ;
|
||
|
+ } ;
|
||
|
|
||
|
switch (c)
|
||
|
{ case ' ' : /* Do nothing. Just used to space out format string. */
|
||
|
@@ -677,7 +680,10 @@ psf_binheader_writef (SF_PRIVATE *psf, c
|
||
|
size = strlen (strptr) + 1 ;
|
||
|
|
||
|
if (psf->header.indx + 4 + (sf_count_t) size + (sf_count_t) (size & 1) > psf->header.len && psf_bump_header_allocation (psf, 4 + size + (size & 1)))
|
||
|
+ {
|
||
|
+ va_end (argptr) ;
|
||
|
return count ;
|
||
|
+ } ;
|
||
|
|
||
|
if (psf->rwf_endian == SF_ENDIAN_BIG)
|
||
|
header_put_be_int (psf, size + (size & 1)) ;
|
||
|
@@ -698,7 +704,10 @@ psf_binheader_writef (SF_PRIVATE *psf, c
|
||
|
strptr = va_arg (argptr, char *) ;
|
||
|
size = strlen (strptr) ;
|
||
|
if (psf->header.indx + 4 + (sf_count_t) size + (sf_count_t) (size & 1) > psf->header.len && psf_bump_header_allocation (psf, 4 + size + (size & 1)))
|
||
|
+ {
|
||
|
+ va_end (argptr) ;
|
||
|
return count ;
|
||
|
+ } ;
|
||
|
if (psf->rwf_endian == SF_ENDIAN_BIG)
|
||
|
header_put_be_int (psf, size) ;
|
||
|
else
|
||
|
@@ -718,7 +727,10 @@ psf_binheader_writef (SF_PRIVATE *psf, c
|
||
|
size = (size > 254) ? 254 : size ;
|
||
|
|
||
|
if (psf->header.indx + 1 + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, 1 + size))
|
||
|
+ {
|
||
|
+ va_end (argptr) ;
|
||
|
return count ;
|
||
|
+ } ;
|
||
|
|
||
|
header_put_byte (psf, size) ;
|
||
|
memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size) ;
|
||
|
@@ -731,7 +743,10 @@ psf_binheader_writef (SF_PRIVATE *psf, c
|
||
|
size = va_arg (argptr, size_t) ;
|
||
|
|
||
|
if (psf->header.indx + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, size))
|
||
|
+ {
|
||
|
+ va_end (argptr) ;
|
||
|
return count ;
|
||
|
+ } ;
|
||
|
|
||
|
memcpy (&(psf->header.ptr [psf->header.indx]), bindata, size) ;
|
||
|
psf->header.indx += size ;
|
||
|
@@ -742,7 +757,10 @@ psf_binheader_writef (SF_PRIVATE *psf, c
|
||
|
size = va_arg (argptr, size_t) ;
|
||
|
|
||
|
if (psf->header.indx + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, size))
|
||
|
+ {
|
||
|
+ va_end (argptr) ;
|
||
|
return count ;
|
||
|
+ } ;
|
||
|
|
||
|
count += size ;
|
||
|
while (size)
|
||
|
@@ -763,7 +781,10 @@ psf_binheader_writef (SF_PRIVATE *psf, c
|
||
|
size = va_arg (argptr, size_t) ;
|
||
|
|
||
|
if (psf->header.indx + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, size))
|
||
|
+ {
|
||
|
+ va_end (argptr) ;
|
||
|
return count ;
|
||
|
+ } ;
|
||
|
|
||
|
psf->header.indx += size ;
|
||
|
count += size ;
|
||
|
@@ -773,7 +794,10 @@ psf_binheader_writef (SF_PRIVATE *psf, c
|
||
|
size = va_arg (argptr, size_t) ;
|
||
|
|
||
|
if ((sf_count_t) size >= psf->header.len && psf_bump_header_allocation (psf, size))
|
||
|
+ {
|
||
|
+ va_end (argptr) ;
|
||
|
return count ;
|
||
|
+ } ;
|
||
|
|
||
|
psf->header.indx = size ;
|
||
|
break ;
|
||
|
@@ -960,7 +984,10 @@ psf_binheader_readf (SF_PRIVATE *psf, ch
|
||
|
while ((c = *format++))
|
||
|
{
|
||
|
if (psf->header.indx + 16 >= psf->header.len && psf_bump_header_allocation (psf, 16))
|
||
|
+ {
|
||
|
+ va_end (argptr) ;
|
||
|
return count ;
|
||
|
+ } ;
|
||
|
|
||
|
switch (c)
|
||
|
{ case 'e' : /* All conversions are now from LE to host. */
|
||
|
@@ -1087,7 +1114,10 @@ psf_binheader_readf (SF_PRIVATE *psf, ch
|
||
|
memset (charptr, 0, count) ;
|
||
|
|
||
|
if (psf->header.indx + count >= psf->header.len && psf_bump_header_allocation (psf, count))
|
||
|
- return 0 ;
|
||
|
+ {
|
||
|
+ va_end (argptr) ;
|
||
|
+ return count ;
|
||
|
+ } ;
|
||
|
|
||
|
byte_count += header_gets (psf, charptr, count) ;
|
||
|
break ;
|