ggerganov commited on
Commit
2daf96b
·
unverified ·
1 Parent(s): 8f1a93e

main : fix dangling pointer when using stdin for input (#65)

Browse files
Files changed (1) hide show
  1. examples/main/main.cpp +5 -6
examples/main/main.cpp CHANGED
@@ -450,28 +450,27 @@ int main(int argc, char ** argv) {
450
  for (int f = 0; f < (int) params.fname_inp.size(); ++f) {
451
  const auto fname_inp = params.fname_inp[f];
452
 
 
 
453
  // WAV input
454
- std::vector<float> pcmf32;
455
  {
456
  drwav wav;
 
457
 
458
  if (fname_inp == "-") {
459
- std::vector<uint8_t> wav_data;
460
  {
461
  uint8_t buf[1024];
462
  while (true)
463
  {
464
  const size_t n = fread(buf, 1, sizeof(buf), stdin);
465
- if (n == 0)
466
- {
467
  break;
468
  }
469
  wav_data.insert(wav_data.end(), buf, buf + n);
470
  }
471
  }
472
 
473
- if (drwav_init_memory(&wav, wav_data.data(), wav_data.size(), NULL) == false)
474
- {
475
  fprintf(stderr, "error: failed to open WAV file from stdin\n");
476
  return 4;
477
  }
 
450
  for (int f = 0; f < (int) params.fname_inp.size(); ++f) {
451
  const auto fname_inp = params.fname_inp[f];
452
 
453
+ std::vector<float> pcmf32; // mono-channel F32 PCM
454
+
455
  // WAV input
 
456
  {
457
  drwav wav;
458
+ std::vector<uint8_t> wav_data; // used for pipe input from stdin
459
 
460
  if (fname_inp == "-") {
 
461
  {
462
  uint8_t buf[1024];
463
  while (true)
464
  {
465
  const size_t n = fread(buf, 1, sizeof(buf), stdin);
466
+ if (n == 0) {
 
467
  break;
468
  }
469
  wav_data.insert(wav_data.end(), buf, buf + n);
470
  }
471
  }
472
 
473
+ if (drwav_init_memory(&wav, wav_data.data(), wav_data.size(), NULL) == false) {
 
474
  fprintf(stderr, "error: failed to open WAV file from stdin\n");
475
  return 4;
476
  }