]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
tree-wide: check parameter before dereferencing
authorDavid Tardon <dtardon@redhat.com>
Wed, 10 Aug 2022 12:00:53 +0000 (14:00 +0200)
committerDavid Tardon <dtardon@redhat.com>
Tue, 13 Sep 2022 06:13:42 +0000 (08:13 +0200)
src/core/job.c
src/core/unit.c
src/shared/journal-importer.c
src/socket-proxy/socket-proxyd.c
src/udev/udev-event.c

index 5a83be0679a7762a3d0fcd4ac547b5dfe97eecc0..33ac89dd57de0b1327a667495a9feccf80e13d94 100644 (file)
@@ -1373,10 +1373,12 @@ void job_shutdown_magic(Job *j) {
 
 int job_get_timeout(Job *j, usec_t *timeout) {
         usec_t x = USEC_INFINITY, y = USEC_INFINITY;
-        Unit *u = j->unit;
+        Unit *u;
         int r;
 
-        assert(u);
+        assert(j);
+
+        u = ASSERT_PTR(j->unit);
 
         if (j->timer_event_source) {
                 r = sd_event_source_get_time(j->timer_event_source, &x);
index ce2bc9f3d8199a5006afb7efbc19020b515c9110..89cbb7d69363485b5b753ccf8c4878e0d802d979 100644 (file)
@@ -1448,10 +1448,12 @@ int unit_load_fragment_and_dropin(Unit *u, bool fragment_required) {
 }
 
 void unit_add_to_target_deps_queue(Unit *u) {
-        Manager *m = u->manager;
+        Manager *m;
 
         assert(u);
 
+        m = ASSERT_PTR(u->manager);
+
         if (u->in_target_deps_queue)
                 return;
 
index 7c355b6c8921b73dbea7ec971e3be251493d45fe..66481da267a9ffc3913f3dd469a7aca37bea79ae 100644 (file)
@@ -36,7 +36,7 @@ void journal_importer_cleanup(JournalImporter *imp) {
 }
 
 static char* realloc_buffer(JournalImporter *imp, size_t size) {
-        char *b, *old = imp->buf;
+        char *b, *old = ASSERT_PTR(imp)->buf;
 
         b = GREEDY_REALLOC(imp->buf, size);
         if (!b)
index 7fef53f00d26871cd1ae2e27684fcd7368de08df..68d13b795a7283cd9bf0ea167296d51fc10a7ac5 100644 (file)
@@ -95,9 +95,13 @@ static int idle_time_cb(sd_event_source *s, uint64_t usec, void *userdata) {
 }
 
 static int connection_release(Connection *c) {
-        Context *context = c->context;
+        Context *context;
         int r;
 
+        assert(c);
+
+        context = ASSERT_PTR(c->context);
+
         connection_free(c);
 
         if (arg_exit_idle_time < USEC_INFINITY && set_isempty(context->connections)) {
index 14607a6c135ff03d0a65f82adc5791d35273b28a..2bba5f52299b43ee90331ae4a49d498ebd7939dc 100644 (file)
@@ -241,12 +241,16 @@ static ssize_t udev_event_subst_format(
                 size_t l,
                 bool *ret_truncated) {
 
-        sd_device *parent, *dev = event->dev;
+        sd_device *parent, *dev;
         const char *val = NULL;
         bool truncated = false;
         char *s = dest;
         int r;
 
+        assert(event);
+
+        dev = ASSERT_PTR(event->dev);
+
         switch (type) {
         case FORMAT_SUBST_DEVPATH:
                 r = sd_device_get_devpath(dev, &val);
@@ -938,9 +942,13 @@ static int rename_netif(UdevEvent *event) {
 }
 
 static int update_devnode(UdevEvent *event) {
-        sd_device *dev = event->dev;
+        sd_device *dev;
         int r;
 
+        assert(event);
+
+        dev = ASSERT_PTR(event->dev);
+
         r = sd_device_get_devnum(dev, NULL);
         if (r == -ENOENT)
                 return 0;
@@ -982,9 +990,13 @@ static int event_execute_rules_on_remove(
                 Hashmap *properties_list,
                 UdevRules *rules) {
 
-        sd_device *dev = event->dev;
+        sd_device *dev;
         int r;
 
+        assert(event);
+
+        dev = ASSERT_PTR(event->dev);
+
         r = device_read_db_internal(dev, true);
         if (r < 0)
                 log_device_debug_errno(dev, r, "Failed to read database under /run/udev/data/: %m");