diff --git a/src/libstrongswan/utils.h b/src/libstrongswan/utils.h index bef6f6638..f04c6334c 100644 --- a/src/libstrongswan/utils.h +++ b/src/libstrongswan/utils.h @@ -121,8 +121,9 @@ /** * Object allocation/initialization macro, using designated initializer. */ -#define INIT(this, ...) { (this) = malloc(sizeof(*this)); \ - *(this) = (typeof(*this)){ __VA_ARGS__ }; } +#define INIT(this, ...) ({ (this) = malloc(sizeof(*(this))); \ + *(this) = (typeof(*(this))){ __VA_ARGS__ }; \ + (this); }) /** * Method declaration/definition macro, providing private and public interface.