Fix: Delete UST app session on ustctl create error
authorDavid Goulet <dgoulet@efficios.com>
Mon, 3 Dec 2012 19:34:45 +0000 (14:34 -0500)
committerChristian Babeux <christian.babeux@efficios.com>
Fri, 7 Dec 2012 20:17:54 +0000 (15:17 -0500)
This has been updated in upstream master (see commit:
0f83395d5e0e927fdab025eae023e68e9021af26).

There was also a check missing at one of the callsite.

http://lists.lttng.org/pipermail/lttng-dev/2012-December/019208.html

Reported-by: David OShea <David.OShea@quantum.com>
Signed-off-by: David Goulet <dgoulet@efficios.com>
src/bin/lttng-sessiond/ust-app.c

index 28b761dc58c149e4292493ef87d0f207792df2b4..5380450f643a31cce3fa3e2eb1bb8ca994fb20ff 100644 (file)
@@ -894,8 +894,9 @@ static struct ust_app_session *create_ust_app_session(
                if (ret < 0) {
                        ERR("Creating session for app pid %d", app->pid);
                        /* This means that the tracer is gone... */
+                       delete_ust_app_session(-1, ua_sess);
                        ua_sess = (void*) -1UL;
-                       goto error;
+                       goto end;
                }
 
                ua_sess->handle = ret;
@@ -909,10 +910,6 @@ static struct ust_app_session *create_ust_app_session(
 
 end:
        return ua_sess;
-
-error:
-       delete_ust_app_session(-1, ua_sess);
-       return NULL;
 }
 
 /*
@@ -2307,7 +2304,7 @@ void ust_app_global_update(struct ltt_ust_session *usess, int sock)
        }
 
        ua_sess = create_ust_app_session(usess, app);
-       if (ua_sess == NULL) {
+       if (ua_sess == NULL || ua_sess == (void *) -1UL) {
                goto error;
        }
 
This page took 0.0455 seconds and 4 git commands to generate.