Fix false ***buffer overflow*** detection
[src/app-framework-binder.git] / src / afb-evt.c
index ed3e467..d361c95 100644 (file)
@@ -84,7 +84,7 @@ struct afb_evtid {
        int id;
 
        /* fullname of the event */
-       char fullname[1];
+       char fullname[];
 };
 
 /*
@@ -316,7 +316,7 @@ struct afb_evtid *afb_evt_evtid_create(const char *fullname)
 
        /* allocates the event */
        len = strlen(fullname);
-       evtid = malloc(len + sizeof * evtid);
+       evtid = malloc(len + 1 + sizeof * evtid);
        if (evtid == NULL)
                goto error;
 
@@ -537,7 +537,7 @@ void afb_evt_listener_unref(struct afb_evt_listener *listener)
        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);