mirror of
https://gitee.com/openharmony/third_party_libsnd
synced 2024-11-23 09:59:54 +00:00
src/rf64.c: Fix varargs related bug
C's <stargs.h> functionality isn't type checked so that passing an `sf_count_t` (64 bits) by mistake in place of a `unit32_t` can cause errors. This would be fine if it was an error on every architecture and platform, but its not. This particular problem only manifested on armhf and some other Arm architectures. It was not an issue on 32 bit x86. I have now fixed variants of this same bug several times. Closes: https://github.com/erikd/libsndfile/issues/229
This commit is contained in:
parent
bf83b95fd9
commit
9d470ee557
@ -742,7 +742,7 @@ rf64_write_header (SF_PRIVATE *psf, int calc_length)
|
||||
|
||||
pad_size = psf->dataoffset - 16 - psf->header.indx ;
|
||||
if (pad_size >= 0)
|
||||
psf_binheader_writef (psf, "m4z", PAD_MARKER, pad_size, make_size_t (pad_size)) ;
|
||||
psf_binheader_writef (psf, "m4z", PAD_MARKER, (unsigned int) pad_size, make_size_t (pad_size)) ;
|
||||
|
||||
if (wpriv->rf64_downgrade && (psf->filelength < RIFF_DOWNGRADE_BYTES))
|
||||
psf_binheader_writef (psf, "tm8", data_MARKER, psf->datalength) ;
|
||||
|
Loading…
Reference in New Issue
Block a user