From 454b91de16cad988ffea4118b0a444e1ad4b28e7 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Thu, 24 Nov 2022 17:53:51 +0200 Subject: [PATCH] main : fix dangling pointer when using stdin for input (#65) --- examples/main/main.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/examples/main/main.cpp b/examples/main/main.cpp index d9b86d3..d17f38f 100644 --- a/examples/main/main.cpp +++ b/examples/main/main.cpp @@ -450,28 +450,27 @@ int main(int argc, char ** argv) { for (int f = 0; f < (int) params.fname_inp.size(); ++f) { const auto fname_inp = params.fname_inp[f]; + std::vector pcmf32; // mono-channel F32 PCM + // WAV input - std::vector pcmf32; { drwav wav; + std::vector wav_data; // used for pipe input from stdin if (fname_inp == "-") { - std::vector wav_data; { uint8_t buf[1024]; while (true) { const size_t n = fread(buf, 1, sizeof(buf), stdin); - if (n == 0) - { + if (n == 0) { break; } wav_data.insert(wav_data.end(), buf, buf + n); } } - if (drwav_init_memory(&wav, wav_data.data(), wav_data.size(), NULL) == false) - { + if (drwav_init_memory(&wav, wav_data.data(), wav_data.size(), NULL) == false) { fprintf(stderr, "error: failed to open WAV file from stdin\n"); return 4; }