Fix asprintf and scanf ignoring return value
[ust.git] / libustd / libustd.c
index 47cb59499c32de3372c23ef2bc80bc4d2c775645..999e4dadfcf65da35e4f669e7e0ca71fb3e837ef 100644 (file)
@@ -29,7 +29,8 @@
 #include <errno.h>
 #include <assert.h>
 
-#include "libustd.h"
+#include <ust/ustd.h>
+#include "lowlevel.h"
 #include "usterr.h"
 #include "ustcomm.h"
 
@@ -57,7 +58,12 @@ int get_subbuffer(struct buffer_info *buf)
        int retval;
        int result;
 
-       asprintf(&send_msg, "get_subbuffer %s", buf->name);
+       if (asprintf(&send_msg, "get_subbuffer %s", buf->name) < 0) {
+               ERR("get_subbuffer : asprintf failed (%s)",
+                   buf->name);
+               retval = -1;
+               goto end;
+       }
        result = ustcomm_send_request(buf->conn, send_msg, &received_msg);
        if((result == -1 && (errno == ECONNRESET || errno == EPIPE)) || result == 0) {
                DBG("app died while being traced");
@@ -117,7 +123,12 @@ int put_subbuffer(struct buffer_info *buf)
        int retval;
        int result;
 
-       asprintf(&send_msg, "put_subbuffer %s %ld", buf->name, buf->consumed_old);
+       if (asprintf(&send_msg, "put_subbuffer %s %ld", buf->name, buf->consumed_old) < 0) {
+               ERR("put_subbuffer : asprintf failed (%s %ld)",
+                   buf->name, buf->consumed_old);
+               retval = -1;
+               goto end;
+       }
        result = ustcomm_send_request(buf->conn, send_msg, &received_msg);
        if(result < 0 && (errno == ECONNRESET || errno == EPIPE)) {
                retval = PUT_SUBBUF_DIED;
@@ -190,7 +201,7 @@ struct buffer_info *connect_buffer(struct libustd_instance *instance, pid_t pid,
        int result;
        struct shmid_ds shmds;
 
-       buf = (struct buffer_info *) malloc(sizeof(struct buffer_info));
+       buf = (struct buffer_info *) zmalloc(sizeof(struct buffer_info));
        if(buf == NULL) {
                ERR("add_buffer: insufficient memory");
                return NULL;
@@ -214,7 +225,10 @@ struct buffer_info *connect_buffer(struct libustd_instance *instance, pid_t pid,
        }
 
        /* get pidunique */
-       asprintf(&send_msg, "get_pidunique");
+       if (asprintf(&send_msg, "get_pidunique") < 0) {
+               ERR("connect_buffer : asprintf failed (get_pidunique)");
+               return NULL;
+       }
        result = ustcomm_send_request(buf->conn, send_msg, &received_msg);
        free(send_msg);
        if(result == -1) {
@@ -234,7 +248,11 @@ struct buffer_info *connect_buffer(struct libustd_instance *instance, pid_t pid,
        DBG("got pidunique %lld", buf->pidunique);
 
        /* get shmid */
-       asprintf(&send_msg, "get_shmid %s", buf->name);
+       if (asprintf(&send_msg, "get_shmid %s", buf->name) < 0) {
+               ERR("connect_buffer : asprintf failed (get_schmid %s)",
+                   buf->name);
+               return NULL;
+       }
        result = ustcomm_send_request(buf->conn, send_msg, &received_msg);
        free(send_msg);
        if(result == -1) {
@@ -254,7 +272,11 @@ struct buffer_info *connect_buffer(struct libustd_instance *instance, pid_t pid,
        DBG("got shmids %d %d", buf->shmid, buf->bufstruct_shmid);
 
        /* get n_subbufs */
-       asprintf(&send_msg, "get_n_subbufs %s", buf->name);
+       if (asprintf(&send_msg, "get_n_subbufs %s", buf->name) < 0) {
+               ERR("connect_buffer : asprintf failed (get_n_subbufs %s)",
+                   buf->name);
+               return NULL;
+       }
        result = ustcomm_send_request(buf->conn, send_msg, &received_msg);
        free(send_msg);
        if(result == -1) {
@@ -274,7 +296,11 @@ struct buffer_info *connect_buffer(struct libustd_instance *instance, pid_t pid,
        DBG("got n_subbufs %d", buf->n_subbufs);
 
        /* get subbuf size */
-       asprintf(&send_msg, "get_subbuf_size %s", buf->name);
+       if (asprintf(&send_msg, "get_subbuf_size %s", buf->name) < 0) {
+               ERR("connect_buffer : asprintf failed (get_subbuf_size %s)",
+                   buf->name);
+               return NULL;
+       }
        result = ustcomm_send_request(buf->conn, send_msg, &received_msg);
        free(send_msg);
        if(result == -1) {
@@ -494,7 +520,7 @@ int start_consuming_buffer(
 
        DBG("beginning of start_consuming_buffer: args: pid %d bufname %s", pid, bufname);
 
-       args = (struct consumer_thread_args *) malloc(sizeof(struct consumer_thread_args));
+       args = (struct consumer_thread_args *) zmalloc(sizeof(struct consumer_thread_args));
 
        args->pid = pid;
        args->bufname = strdup(bufname);
@@ -647,7 +673,7 @@ struct libustd_instance *libustd_new_instance(
        struct libustd_callbacks *callbacks, char *sock_path)
 {
        struct libustd_instance *instance =
-               malloc(sizeof(struct libustd_instance));
+               zmalloc(sizeof(struct libustd_instance));
        if(!instance)
                return NULL;
 
This page took 0.02362 seconds and 4 git commands to generate.