libustconsumer: Fix a fd leak of the pipe_fd
[ust.git] / libustconsumer / libustconsumer.c
index 25c84ce0c48d36b20ef6369e8f0a60d5a2508293..8eb4424be81099d4113fe00a8d780b1e2f5edfce 100644 (file)
@@ -353,6 +353,10 @@ struct buffer_info *connect_buffer(struct ustconsumer_instance *instance, pid_t
                goto close_fifo;
        }
 
+       /* Set subbuffer's information */
+       buf->subbuf_size_order = get_count_order(buf->subbuf_size);
+       buf->alloc_size = buf->subbuf_size * buf->n_subbufs;
+
        /* attach memory */
        buf->mem = shmat(buf->shmid, NULL, 0);
        if(buf->mem == (void *) 0) {
@@ -422,6 +426,11 @@ static void destroy_buffer(struct ustconsumer_callbacks *callbacks,
 {
        int result;
 
+       result = close(buf->pipe_fd);
+       if(result == -1) {
+               WARN("problem closing the pipe fd");
+       }
+
        result = close(buf->app_sock);
        if(result == -1) {
                WARN("problem calling ustcomm_close_app");
@@ -621,7 +630,7 @@ static void process_client_cmd(int sock, struct ustcomm_header *req_header,
                               char *recvbuf, struct ustconsumer_instance *instance)
 {
        int result;
-       struct ustcomm_header _res_header;
+       struct ustcomm_header _res_header = {0};
        struct ustcomm_header *res_header = &_res_header;
        struct ustcomm_buffer_info *buf_inf;
 
This page took 0.022986 seconds and 4 git commands to generate.