Add benchmark directory to git ignore
[lttng-tools.git] / liblttngctl / lttngctl.c
index 42f3ad2ae9950729c3c53922c759d53173d59ee5..4b803dc5b06e4ee76a56caf388d6af3b7911cd18 100644 (file)
  */
 
 #define _GNU_SOURCE
-#include <errno.h>
 #include <grp.h>
+#include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
-#include <lttng/lttng.h>
-
 #include <lttng-sessiond-comm.h>
-#include "lttngerr.h"
-#include "lttng-share.h"
+#include <lttng-share.h>
+#include <lttng/lttng.h>
+#include <lttngerr.h>
 
 /* Socket to session daemon for communication */
 static int sessiond_socket;
@@ -153,6 +152,10 @@ static int check_tracing_group(const char *grp_name)
 
        /* Alloc group list of the right size */
        grp_list = malloc(grp_list_size * sizeof(gid_t));
+       if (!grp_list) {
+               ret = -1;
+               goto end;
+       }
        grp_id = getgroups(grp_list_size, grp_list);
        if (grp_id < -1) {
                perror("getgroups");
@@ -344,6 +347,16 @@ static int ask_sessiond(struct lttcomm_session_msg *lsm, void **buf)
                goto end;
        }
 
+       /*
+        * Extra protection not to dereference a NULL pointer. If buf is NULL at
+        * this point, an error is returned and data is freed.
+        */
+       if (buf == NULL) {
+               ret = -1;
+               free(data);
+               goto end;
+       }
+
        *buf = data;
        ret = size;
 
This page took 0.023545 seconds and 4 git commands to generate.