]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
main: fix type confusion in do_reexecute()
authorLennart Poettering <lennart@poettering.net>
Thu, 29 Jul 2021 15:22:03 +0000 (17:22 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 29 Jul 2021 19:14:38 +0000 (21:14 +0200)
Let's use size_t for stuff we count in memory. This doesn't matter much,
but is certainly more correct and less eyebrow-raising.

Follow-up for: 846f1da465beda990c1c01346311393f485df467

See: https://github.com/systemd/systemd/pull/20273#discussion_r679250180

src/core/main.c

index f3272a27370ae65bfa49d477af16766b6e856984..8920d70d5d735a5f21365f0508295a22e6f84e58 100644 (file)
@@ -1721,9 +1721,14 @@ static void update_numa_policy(bool skip_setup) {
                 log_warning_errno(r, "Failed to set NUMA memory policy: %m");
 }
 
-static void filter_args(const char* dst[], unsigned *pos, char **src, int argc) {
+static void filter_args(
+                const char* dst[],
+                size_t *dst_index,
+                char **src,
+                int argc) {
+
         assert(dst);
-        assert(pos);
+        assert(dst_index);
 
         /* Copy some filtered arguments into the dst array from src. */
         for (int i = 1; i < argc; i++) {
@@ -1757,8 +1762,7 @@ static void filter_args(const char* dst[], unsigned *pos, char **src, int argc)
                         continue;
 
                 /* Seems we have a good old option. Let's pass it over to the new instance. */
-                dst[*pos] = src[i];
-                (*pos)++;
+                dst[(*dst_index)++] = src[i];
         }
 }
 
@@ -1772,10 +1776,11 @@ static void do_reexecute(
                 const char *switch_root_init,
                 const char **ret_error_message) {
 
-        unsigned i, args_size;
+        size_t i, args_size;
         const char **args;
         int r;
 
+        assert(argc >= 0);
         assert(saved_rlimit_nofile);
         assert(saved_rlimit_memlock);
         assert(ret_error_message);