]> git.alsa-project.org Git - alsa-utils.git/commit
aplay: fix lurking capture file overwrite bug
authorDavid Fries <David@Fries.net>
Thu, 14 Apr 2016 04:32:46 +0000 (23:32 -0500)
committerTakashi Iwai <tiwai@suse.de>
Thu, 14 Apr 2016 12:35:42 +0000 (14:35 +0200)
commit85827fbb642463ab724a9471a7a88f93fa2a217d
tree76e24b1f30c6a0d2b80af8240af254a3c1160528
parent96db90e98a6040f680f4ebca1880268a2e1ab6cc
aplay: fix lurking capture file overwrite bug

If -d was given to arecord while commit
8aa13eec80eac312e4b99423909387660fb99b8f (now reverted) was in effect,
the last read would be shorter than the chunk size, but pcm_read would
read and return the chunk size, the samples were discarded, and
capture() continued in a loop because count never reached 0.  arecord
opens a new file each loop iteration, if arecord is dynamically naming
files, --use-strftime option or beyond the wave 2GB limit, this will
generate a series of header only wave files.  If the file is unique
the originally recorded data is lost and it will continue overwriting
the same file with a header only wave file.

While the current pcm_read can't fail (it can exit), it is better to
just fix this lurking bug in case it is "fixed" again.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
aplay/aplay.c