[v17,12/12] config: Check configuration file version
diff mbox series

Message ID 20250911092945.16517-13-mzamazal@redhat.com
State Superseded
Headers show
Series
  • Add global configuration file
Related show

Commit Message

Milan Zamazal Sept. 11, 2025, 9:29 a.m. UTC
We don't know what the future versions of the configuration file will
look like.  The current code can process only version 1; let's check
that the read configuration is of this version.

Signed-off-by: Milan Zamazal <mzamazal@redhat.com>
---
 src/libcamera/global_configuration.cpp | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

Paul Elder Sept. 12, 2025, 9:44 a.m. UTC | #1
Hi Milan,

Thanks for the patch.

Quoting Milan Zamazal (2025-09-11 18:29:42)
> We don't know what the future versions of the configuration file will
> look like.  The current code can process only version 1; let's check
> that the read configuration is of this version.
> 
> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>

Looks good to me.

Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>

> ---
>  src/libcamera/global_configuration.cpp | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/src/libcamera/global_configuration.cpp b/src/libcamera/global_configuration.cpp
> index 8c2670e03..2eec45363 100644
> --- a/src/libcamera/global_configuration.cpp
> +++ b/src/libcamera/global_configuration.cpp
> @@ -67,6 +67,15 @@ bool GlobalConfiguration::loadFile(const std::filesystem::path &fileName)
>                 return true;
>         }
>  
> +       const std::optional<int> version = (*configuration)["version"].get<int>();
> +       if (version != 1) {
> +               LOG(Configuration, Error)
> +                       << "Failed to read configuration file due to unsupported version "
> +                       << (version ? std::to_string(version.value()) : "\"unspecified\"")
> +                       << ", expected version 1";
> +               return true;
> +       }
> +
>         yamlConfiguration_ = std::move(configuration);
>         return true;
>  }
> -- 
> 2.51.0
>

Patch
diff mbox series

diff --git a/src/libcamera/global_configuration.cpp b/src/libcamera/global_configuration.cpp
index 8c2670e03..2eec45363 100644
--- a/src/libcamera/global_configuration.cpp
+++ b/src/libcamera/global_configuration.cpp
@@ -67,6 +67,15 @@  bool GlobalConfiguration::loadFile(const std::filesystem::path &fileName)
 		return true;
 	}
 
+	const std::optional<int> version = (*configuration)["version"].get<int>();
+	if (version != 1) {
+		LOG(Configuration, Error)
+			<< "Failed to read configuration file due to unsupported version "
+			<< (version ? std::to_string(version.value()) : "\"unspecified\"")
+			<< ", expected version 1";
+		return true;
+	}
+
 	yamlConfiguration_ = std::move(configuration);
 	return true;
 }