From afbd8024110aaa80a7b94cff9a9d96e763b13916 Mon Sep 17 00:00:00 2001 From: hop311 Date: Mon, 22 Jan 2024 16:32:18 +0000 Subject: Fixed BasicParser::_file_path relying on externally controlled memory --- include/openvic-dataloader/csv/LineObject.hpp | 2 +- include/openvic-dataloader/detail/BasicParser.hpp | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/openvic-dataloader/csv/LineObject.hpp b/include/openvic-dataloader/csv/LineObject.hpp index 6366c71..87b4d31 100644 --- a/include/openvic-dataloader/csv/LineObject.hpp +++ b/include/openvic-dataloader/csv/LineObject.hpp @@ -88,7 +88,7 @@ namespace ovdl::csv { }; inline std::ostream& operator<<(std::ostream& stream, const LineObject& line) { - static const char SEP = ';'; + static constexpr char SEP = ';'; LineObject::position_type sep_index = 0; for (const auto& [pos, val] : line) { while (sep_index < pos) { diff --git a/include/openvic-dataloader/detail/BasicParser.hpp b/include/openvic-dataloader/detail/BasicParser.hpp index 1e2fd14..7524bb5 100644 --- a/include/openvic-dataloader/detail/BasicParser.hpp +++ b/include/openvic-dataloader/detail/BasicParser.hpp @@ -1,5 +1,7 @@ #pragma once +#include +#include #include #include @@ -22,13 +24,14 @@ namespace ovdl::detail { const std::vector& get_errors() const; const std::vector& get_warnings() const; + std::string_view get_file_path() const; protected: std::vector _errors; std::vector _warnings; std::reference_wrapper _error_stream; - const char* _file_path; + std::string _file_path; bool _has_fatal_error = false; }; } \ No newline at end of file -- cgit v1.2.3-56-ga3b1