ulatekh commited on
Commit
ffc6231
·
unverified ·
1 Parent(s): ed041ef

common : fix file-handle leak in read_wav() (#2026)

Browse files
Files changed (1) hide show
  1. examples/common.cpp +4 -0
examples/common.cpp CHANGED
@@ -676,21 +676,25 @@ bool read_wav(const std::string & fname, std::vector<float>& pcmf32, std::vector
676
 
677
  if (wav.channels != 1 && wav.channels != 2) {
678
  fprintf(stderr, "%s: WAV file '%s' must be mono or stereo\n", __func__, fname.c_str());
 
679
  return false;
680
  }
681
 
682
  if (stereo && wav.channels != 2) {
683
  fprintf(stderr, "%s: WAV file '%s' must be stereo for diarization\n", __func__, fname.c_str());
 
684
  return false;
685
  }
686
 
687
  if (wav.sampleRate != COMMON_SAMPLE_RATE) {
688
  fprintf(stderr, "%s: WAV file '%s' must be %i kHz\n", __func__, fname.c_str(), COMMON_SAMPLE_RATE/1000);
 
689
  return false;
690
  }
691
 
692
  if (wav.bitsPerSample != 16) {
693
  fprintf(stderr, "%s: WAV file '%s' must be 16-bit\n", __func__, fname.c_str());
 
694
  return false;
695
  }
696
 
 
676
 
677
  if (wav.channels != 1 && wav.channels != 2) {
678
  fprintf(stderr, "%s: WAV file '%s' must be mono or stereo\n", __func__, fname.c_str());
679
+ drwav_uninit(&wav);
680
  return false;
681
  }
682
 
683
  if (stereo && wav.channels != 2) {
684
  fprintf(stderr, "%s: WAV file '%s' must be stereo for diarization\n", __func__, fname.c_str());
685
+ drwav_uninit(&wav);
686
  return false;
687
  }
688
 
689
  if (wav.sampleRate != COMMON_SAMPLE_RATE) {
690
  fprintf(stderr, "%s: WAV file '%s' must be %i kHz\n", __func__, fname.c_str(), COMMON_SAMPLE_RATE/1000);
691
+ drwav_uninit(&wav);
692
  return false;
693
  }
694
 
695
  if (wav.bitsPerSample != 16) {
696
  fprintf(stderr, "%s: WAV file '%s' must be 16-bit\n", __func__, fname.c_str());
697
+ drwav_uninit(&wav);
698
  return false;
699
  }
700