X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fconf.c;h=b6632fcb144c052fa0ef4a9652843a074abd64c7;hb=1cb514cec8d71a17376a1f2e78f0a68f2f410521;hp=c1bfcfd45b8d87eacfae6d3be878033121ee85cc;hpb=0e428499a49b2335f4859058739fa2b20f4c410f;p=lttng-tools.git diff --git a/src/bin/lttng/conf.c b/src/bin/lttng/conf.c index c1bfcfd45..b6632fcb1 100644 --- a/src/bin/lttng/conf.c +++ b/src/bin/lttng/conf.c @@ -40,6 +40,7 @@ char *config_get_file_path(char *path) ret = asprintf(&file_path, "%s/%s", path, CONFIG_FILENAME); if (ret < 0) { ERR("Fail allocating config file path"); + file_path = NULL; } return file_path; @@ -203,6 +204,7 @@ char *config_read_session_name(char *path) if (fp == NULL) { ERR("Can't find valid lttng config %s/.lttngrc", path); MSG("Did you create a session? (lttng create )"); + free(session_name); goto error; } @@ -221,6 +223,7 @@ char *config_read_session_name(char *path) } error_close: + free(session_name); ret = fclose(fp); if (ret < 0) { PERROR("close config read session name"); @@ -246,14 +249,16 @@ found: int config_add_session_name(char *path, char *name) { int ret; - char session_name[NAME_MAX]; + char *attr = "session="; + /* Max name len accepted plus attribute's len and the NULL byte. */ + char session_name[NAME_MAX + strlen(attr) + 1]; /* * With GNU C < 2.1, snprintf returns -1 if the target buffer is too small; * With GNU C >= 2.1, snprintf returns the required size (excluding closing null) */ - ret = snprintf(session_name, NAME_MAX, "session=%s\n", name); - if ((ret < 0) || (ret >= NAME_MAX)) { + ret = snprintf(session_name, sizeof(session_name), "%s%s\n", attr, name); + if (ret < 0) { ret = -1; goto error; }