Fix: missing varargs cleanup on error
[lttng-tools.git] / src / common / config / config.c
index 5e100a7ab6c9c6e66848f5010acc711ffba51b8d..c952e8ba29180b4164638802b486c22244b0dd95 100644 (file)
@@ -540,11 +540,11 @@ void xml_error_handler(void *ctx, const char *format, ...)
 
        va_start(args, format);
        ret = vasprintf(&errMsg, format, args);
+       va_end(args);
        if (ret == -1) {
                ERR("String allocation failed in xml error handler");
                return;
        }
-       va_end(args);
 
        fprintf(stderr, "XML Error: %s", errMsg);
        free(errMsg);
@@ -1238,7 +1238,7 @@ int create_session(const char *name,
                        goto end;
                }
 
-               for (i = 0; i < (sizeof(domains) / sizeof(*domain)); i++) {
+               for (i = 0; i < (sizeof(domains) / sizeof(domains[0])); i++) {
                        domain = domains[i];
                        if (!domain) {
                                continue;
@@ -2198,12 +2198,24 @@ int process_session_node(xmlNodePtr session_node, const char *session_name,
 
                switch (domain->type) {
                case LTTNG_DOMAIN_KERNEL:
+                       if (kernel_domain) {
+                               /* Same domain seen twice, invalid! */
+                               goto domain_init_error;
+                       }
                        kernel_domain = domain;
                        break;
                case LTTNG_DOMAIN_UST:
+                       if (ust_domain) {
+                               /* Same domain seen twice, invalid! */
+                               goto domain_init_error;
+                       }
                        ust_domain = domain;
                        break;
                case LTTNG_DOMAIN_JUL:
+                       if (jul_domain) {
+                               /* Same domain seen twice, invalid! */
+                               goto domain_init_error;
+                       }
                        jul_domain = domain;
                        break;
                default:
This page took 0.023619 seconds and 4 git commands to generate.