int id;
/* fullname of the event */
- char fullname[1];
+ char fullname[];
};
/*
/* allocates the event */
len = strlen(fullname);
- evtid = malloc(len + sizeof * evtid);
+ evtid = malloc(len + 1 + sizeof * evtid);
if (evtid == NULL)
goto error;
struct afb_evt_listener **prv;
struct afb_evtid *evtid;
- if (!__atomic_sub_fetch(&listener->refcount, 1, __ATOMIC_RELAXED)) {
+ if (listener && !__atomic_sub_fetch(&listener->refcount, 1, __ATOMIC_RELAXED)) {
/* unlink the listener */
pthread_rwlock_wrlock(&listeners_rwlock);