unit: make UNIT() cast function deal with NULL pointers

Fixes: #10681
This commit is contained in:
Lennart Poettering
2018-11-08 10:47:08 +01:00
committed by Zbigniew Jędrzejewski-Szmek
parent 8d2411f693
commit bbf1120623
+6 -1
View File
@@ -582,7 +582,12 @@ extern const UnitVTable * const unit_vtable[_UNIT_TYPE_MAX];
}
/* For casting the various unit types into a unit */
#define UNIT(u) (&(u)->meta)
#define UNIT(u) \
({ \
typeof(u) _u_ = (u); \
Unit *_w_ = _u_ ? &(_u_)->meta : NULL; \
_w_; \
})
#define UNIT_HAS_EXEC_CONTEXT(u) (UNIT_VTABLE(u)->exec_context_offset > 0)
#define UNIT_HAS_CGROUP_CONTEXT(u) (UNIT_VTABLE(u)->cgroup_context_offset > 0)