Fix false ***buffer overflow*** detection
[src/app-framework-binder.git] / src / afb-trace.c
index ffb0305..0de78da 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016, 2017, 2018 "IoT.bzh"
+ * Copyright (C) 2016-2019 "IoT.bzh"
  * Author José Bollo <jose.bollo@iot.bzh>
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -15,6 +15,8 @@
  * limitations under the License.
  */
 
+#if WITH_AFB_HOOK && WITH_AFB_TRACE
+
 #define _GNU_SOURCE
 
 #include <assert.h>
@@ -65,7 +67,7 @@
 /* struct for tags */
 struct tag {
        struct tag *next;       /* link to the next */
-       char tag[1];            /* name of the tag */
+       char tag[];             /* name of the tag */
 };
 
 /* struct for events */
@@ -1071,7 +1073,7 @@ static struct tag *trace_get_tag(struct afb_trace *trace, const char *name, int
 
        if (!tag && alloc) {
                /* creation if needed */
-               tag = malloc(sizeof * tag + strlen(name));
+               tag = malloc(sizeof * tag + 1 + strlen(name));
                if (tag) {
                        strcpy(tag->tag, name);
                        tag->next = trace->tags;
@@ -1605,3 +1607,5 @@ int afb_trace_drop(afb_req_t req, struct json_object *args, struct afb_trace *tr
        free(context.errors);
        return -1;
 }
+
+#endif