]> git.ipfire.org Git - thirdparty/dracut-ng.git/commitdiff
refactor(dracut-install): copy_xattr: use _cleanup_free_
authorMarcos Mello <marcosfrm@gmail.com>
Tue, 8 Jul 2025 22:01:42 +0000 (19:01 -0300)
committerBenjamin Drung <bdrung@ubuntu.com>
Tue, 8 Jul 2025 22:27:07 +0000 (00:27 +0200)
Use _cleanup_free_ for buffers and remove unnecessary variable
initializations.

src/install/dracut-install.c

index 5d9d5bf4f54eed858d2547e4e0b43efdaa80bc5b..bedaf44cf0ceea8d16f02d12f117996b040c08d2 100644 (file)
@@ -329,8 +329,9 @@ static inline int clone_file(int dest_fd, int src_fd)
 static int copy_xattr(int dest_fd, int src_fd)
 {
         int ret = 0;
-        ssize_t name_len = 0, value_len = 0;
-        char *name_buf = NULL, *name = NULL, *value = NULL, *value_save = NULL;
+        ssize_t name_len, value_len;
+        _cleanup_free_ char *name_buf = NULL, *value = NULL;
+        char *name, *value_save;
 
         name_len = flistxattr(src_fd, NULL, 0);
         if (name_len < 0)
@@ -345,7 +346,7 @@ static int copy_xattr(int dest_fd, int src_fd)
 
         name_len = flistxattr(src_fd, name_buf, name_len);
         if (name_len < 0)
-                goto out;
+                return -1;
 
         for (name = name_buf; name != name_buf + name_len; name = strchr(name, '\0') + 1) {
                 value_len = fgetxattr(src_fd, name, NULL, 0);
@@ -358,8 +359,7 @@ static int copy_xattr(int dest_fd, int src_fd)
                 value = realloc(value, value_len);
                 if (value == NULL) {
                         value = value_save;
-                        ret = -1;
-                        goto out;
+                        return -1;
                 }
 
                 value_len = fgetxattr(src_fd, name, value, value_len);
@@ -373,9 +373,6 @@ static int copy_xattr(int dest_fd, int src_fd)
                         ret = -1;
         }
 
-out:
-        free(name_buf);
-        free(value);
         return ret;
 }