[PATCH 3/4] bootstd: rauc: Move freeing private struct to its own function

Martin Schwan m.schwan at phytec.de
Wed Aug 13 13:54:07 CEST 2025


Move freeing a distro_rauc_priv struct to a new, separate function for
better reuse.

Signed-off-by: Martin Schwan <m.schwan at phytec.de>
---
 boot/bootmeth_rauc.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/boot/bootmeth_rauc.c b/boot/bootmeth_rauc.c
index c8efdce75b9134d1c329be40a1eecc57977ffff1..f781a7fc0b5153b952afc8da38b17d93e073485d 100644
--- a/boot/bootmeth_rauc.c
+++ b/boot/bootmeth_rauc.c
@@ -52,6 +52,18 @@ struct distro_rauc_priv {
 	struct distro_rauc_slot **slots;
 };
 
+static void distro_rauc_priv_free(struct distro_rauc_priv *priv)
+{
+	int i;
+
+	for (i = 0; priv->slots[i]; i++) {
+		free(priv->slots[i]->name);
+		free(priv->slots[i]);
+	}
+	free(priv->slots);
+	free(priv);
+}
+
 static struct distro_rauc_slot *get_slot(struct distro_rauc_priv *priv,
 					 const char *slot_name)
 {
@@ -187,11 +199,7 @@ static int distro_rauc_read_bootflow(struct udevice *dev, struct bootflow *bflow
 
 	ret = distro_rauc_scan_parts(bflow);
 	if (ret < 0) {
-		for (i = 0; priv->slots[i]; i++) {
-			free(priv->slots[i]->name);
-			free(priv->slots[i]);
-		}
-		free(priv);
+		distro_rauc_priv_free(priv);
 		free(boot_order_copy);
 		return ret;
 	}

-- 
2.50.1



More information about the U-Boot mailing list