]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-json: don't accidentally convert between unsigned/signed when parsing signal
authorLennart Poettering <lennart@poettering.net>
Thu, 31 Oct 2024 14:39:34 +0000 (15:39 +0100)
committerMike Yuan <me@yhndnzj.com>
Thu, 31 Oct 2024 18:54:47 +0000 (19:54 +0100)
src/libsystemd/sd-json/sd-json.c

index 5e9c1ba15bed40379f1a05ff3304f11737ab245d..c3d74df9e6cc8532901deeccbe85ee843c5251f2 100644 (file)
@@ -5614,9 +5614,7 @@ _public_ int sd_json_dispatch_id128(const char *name, sd_json_variant *variant,
 }
 
 _public_ int sd_json_dispatch_signal(const char *name, sd_json_variant *variant, sd_json_dispatch_flags_t flags, void *userdata) {
-        int *signo = userdata;
-        uint32_t k;
-        int r;
+        int *signo = ASSERT_PTR(userdata), r;
 
         assert_return(variant, -EINVAL);
 
@@ -5625,7 +5623,8 @@ _public_ int sd_json_dispatch_signal(const char *name, sd_json_variant *variant,
                 return 0;
         }
 
-        r = sd_json_dispatch_uint32(name, variant, flags, &k);
+        int k;
+        r = sd_json_dispatch_int(name, variant, flags, &k);
         if (r < 0)
                 return r;