summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorFrantisek Sumsal <frantisek@sumsal.cz>2023-05-02 22:36:36 +0200
committerFrantisek Sumsal <frantisek@sumsal.cz>2023-05-03 10:09:53 +0200
commit45b1017488cef2a5bacdf82028ce900a311c9a1c (patch)
tree5a4de26fb785fc33b846f052f696e690b6e0a18e /src/core
parent24e6759cbcd58dfd779f70fa3cf45227dcf8798f (diff)
downloadsystemd-45b1017488cef2a5bacdf82028ce900a311c9a1c.tar.gz
core: fix NULL pointer dereference during deserialization
Diffstat (limited to 'src/core')
-rw-r--r--src/core/service.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/core/service.c b/src/core/service.c
index c035f4c24e..2ba7511ad2 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -3219,6 +3219,11 @@ static int service_deserialize_item(Unit *u, const char *key, const char *value,
} else if (streq(key, "accept-socket")) {
Unit *socket;
+ if (u->type != UNIT_SOCKET) {
+ log_unit_debug(u, "Failed to deserialize accept-socket: unit is not a socket");
+ return 0;
+ }
+
r = manager_load_unit(u->manager, value, NULL, NULL, &socket);
if (r < 0)
log_unit_debug_errno(u, r, "Failed to load accept-socket unit '%s': %m", value);