diff --git a/src/shared/mstack.c b/src/shared/mstack.c index f0ebd57635..d1eddda28b 100644 --- a/src/shared/mstack.c +++ b/src/shared/mstack.c @@ -1120,19 +1120,18 @@ int mstack_apply( return mstack_bind_mounts(&mstack, where, /* where_fd= */ -EBADF, flags, ret_root_fd); } -int mstack_load(const char *dir, - int dir_fd, - MStack **ret) { - +int mstack_load(const char *dir, int dir_fd, MStack **ret) { int r; + assert(ret); + /* Well-known errors: * * -ENOTUNIQ → Multiple conflicting layers for the same path defined * -EBADMSG → Bad file suffix, inode type for layer, or unrecognized entry */ - MStack *mstack = new(MStack, 1); + _cleanup_(mstack_freep) MStack *mstack = new(MStack, 1); if (!mstack) return -ENOMEM; @@ -1142,9 +1141,7 @@ int mstack_load(const char *dir, if (r < 0) return r; - if (ret) - *ret = TAKE_PTR(mstack); - + *ret = TAKE_PTR(mstack); return 0; }