X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fconf.c;fp=src%2Fbin%2Flttng%2Fconf.c;h=8f6be665072925eda8d901a8762aa098f3776d14;hb=d4ec3d67c0ef956f3f13b95fc7ff2b1308c1db63;hp=995407d03d4d4ba6863ee991c6da927df06e8db8;hpb=2e17663e4ecd31edfd3303c019d985cd459f28c7;p=lttng-tools.git diff --git a/src/bin/lttng/conf.c b/src/bin/lttng/conf.c index 995407d03..8f6be6650 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; @@ -248,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; }