From 0c37b9ed01eea0f9455aa3583dca4cd0559da1af Mon Sep 17 00:00:00 2001 From: Brian Ward Date: Thu, 3 Sep 2026 10:10:11 -0400 Subject: [PATCH] stan_csv_reader: avoid infinite loops on poorly placed EOF --- src/stan/io/stan_csv_reader.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/stan/io/stan_csv_reader.hpp b/src/stan/io/stan_csv_reader.hpp index 4b5b217c793..c4ff05ed379 100644 --- a/src/stan/io/stan_csv_reader.hpp +++ b/src/stan/io/stan_csv_reader.hpp @@ -104,9 +104,9 @@ class stan_csv_reader { std::stringstream ss; std::string line; - if (in.peek() != '#') + if (in.peek() != '#' || !in.good()) return; - while (in.peek() == '#') { + while (in.peek() == '#' && in.good()) { std::getline(in, line); ss << line << '\n'; } @@ -225,7 +225,7 @@ class stan_csv_reader { int lines = 0; if (in.peek() != '#' || in.good() == false) return; - while (in.peek() == '#') { + while (in.peek() == '#' && in.good()) { std::getline(in, line); ss << line << std::endl; lines++;