Fix: Possible out-of-bounds read
[lttng-tools.git] / src / common / config / config.c
index 8b34d02f1d54500a339f4cb190d58bba1bf6d4b1..e3fe74ac284973b6912236dfec89be2904d4bca1 100644 (file)
@@ -2305,6 +2305,11 @@ domain_init_error:
                }
        }
 end:
+       if (ret < 0) {
+               ERR("Failed to load session %s: %s", name, lttng_strerror(ret));
+               lttng_destroy_session(name);
+       }
+
        free(kernel_domain);
        free(ust_domain);
        free(jul_domain);
@@ -2431,7 +2436,7 @@ int load_session_from_path(const char *path, const char *session_name,
                                continue;
                        }
 
-                       if (path_len + file_name_len > PATH_MAX) {
+                       if (path_len + file_name_len >= PATH_MAX) {
                                continue;
                        }
 
@@ -2544,5 +2549,12 @@ int config_load_session(const char *path, const char *session_name,
        }
 end:
        fini_session_config_validation_ctx(&validation_ctx);
+       if (ret == -LTTNG_ERR_LOAD_SESSION_NOENT && !session_name && !path) {
+               /*
+                * Don't report an error if no sessions are found when called
+                * without a session_name or a search path.
+                */
+               ret = 0;
+       }
        return ret;
 }
This page took 0.0249509999999999 seconds and 5 git commands to generate.