Fix false ***buffer overflow*** detection
[src/app-framework-binder.git] / src / afb-api-dbus.c
index f413294..1f254d1 100644 (file)
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-#if defined(WITH_DBUS_TRANSPARENCY)
+#if WITH_DBUS_TRANSPARENCY
 
 #define _GNU_SOURCE
 
@@ -33,8 +33,6 @@
 
 #include <afb/afb-event-x2.h>
 
-#include "afb-systemd.h"
-
 #include "afb-session.h"
 #include "afb-msg-json.h"
 #include "afb-api.h"
 #include "afb-cred.h"
 #include "afb-evt.h"
 #include "afb-xreq.h"
-#include "verbose.h"
 
+#include "verbose.h"
+#include "systemd.h"
+#include "jobs.h"
 
 static const char DEFAULT_PATH_PREFIX[] = "/org/agl/afb/api/";
 
@@ -130,7 +130,8 @@ static struct api_dbus *make_api_dbus_3(int system, const char *path, size_t pat
        }
 
        /* choose the bus */
-       sdbus = (system ? afb_systemd_get_system_bus : afb_systemd_get_user_bus)();
+       jobs_acquire_event_manager();
+       sdbus = (system ? systemd_get_system_bus : systemd_get_user_bus)();
        if (sdbus == NULL)
                goto error2;
 
@@ -665,7 +666,7 @@ struct origin
        struct afb_cred *cred;
 
        /* the origin */
-       char name[1];
+       char name[];
 };
 
 /* get the credentials for the message */
@@ -709,7 +710,7 @@ static struct origin *afb_api_dbus_server_origin_get(struct api_dbus *api, const
        }
 
        /* not found, create it */
-       origin = malloc(strlen(sender) + sizeof *origin);
+       origin = malloc(strlen(sender) + 1 + sizeof *origin);
        if (origin == NULL)
                errno = ENOMEM;
        else {