From 97db6fbfc79a9925509a05b2e5fcbdf87dcb58b5 Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Fri, 29 May 2026 13:29:07 +0100 Subject: [PATCH] shared: Add a image_policy_copy() helper method This will be used in an upcoming commit to move global command line argument variables in sysupdate into its `Context` struct. --- src/shared/image-policy.c | 6 ++++++ src/shared/image-policy.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/shared/image-policy.c b/src/shared/image-policy.c index 59d1161d046..622b5c2aa14 100644 --- a/src/shared/image-policy.c +++ b/src/shared/image-policy.c @@ -948,6 +948,12 @@ ImagePolicy* image_policy_free(ImagePolicy *p) { return mfree(p); } +ImagePolicy* image_policy_copy(const ImagePolicy *p) { + assert(p); + + return memdup(p, offsetof(ImagePolicy, policies) + sizeof(PartitionPolicy) * p->n_policies); +} + int image_policy_ignore_designators(const ImagePolicy *p, const PartitionDesignator table[], size_t n_table, ImagePolicy **ret) { assert(p); assert(table || n_table == 0); diff --git a/src/shared/image-policy.h b/src/shared/image-policy.h index fe2bf0d2004..b0c229e71ea 100644 --- a/src/shared/image-policy.h +++ b/src/shared/image-policy.h @@ -119,6 +119,8 @@ ImagePolicy* image_policy_free(ImagePolicy *p); DEFINE_TRIVIAL_CLEANUP_FUNC(ImagePolicy*, image_policy_free); +ImagePolicy* image_policy_copy(const ImagePolicy *p); + CONFIG_PARSER_PROTOTYPE(config_parse_image_policy); int parse_image_policy_argument(const char *s, ImagePolicy **policy);