X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=liblttsessiondcomm%2Fliblttsessiondcomm.c;h=cecd89d6a5815fc7ee1e472821474afc4785dc39;hp=e7e4204339d61dc0b1daa97cdadd3b1c6fd8033c;hb=fc2c5c882c8b0eec3ecca145add12b30ce2c5fdf;hpb=7d8234d9e6f162ee642cdbec911f46c29b012c3d diff --git a/liblttsessiondcomm/liblttsessiondcomm.c b/liblttsessiondcomm/liblttsessiondcomm.c index e7e420433..cecd89d6a 100644 --- a/liblttsessiondcomm/liblttsessiondcomm.c +++ b/liblttsessiondcomm/liblttsessiondcomm.c @@ -28,7 +28,7 @@ #include #include -#include "liblttsessiondcomm.h" +#include /* * Human readable error message. @@ -115,28 +115,36 @@ int lttcomm_connect_unix_sock(const char *pathname) { struct sockaddr_un sun; int fd; - int ret = 1; + int ret; fd = socket(PF_UNIX, SOCK_STREAM, 0); if (fd < 0) { perror("socket"); + ret = fd; goto error; } memset(&sun, 0, sizeof(sun)); sun.sun_family = AF_UNIX; strncpy(sun.sun_path, pathname, sizeof(sun.sun_path)); + sun.sun_path[sizeof(sun.sun_path) - 1] = '\0'; ret = connect(fd, (struct sockaddr *) &sun, sizeof(sun)); if (ret < 0) { - perror("connect"); - goto error; + /* + * Don't print message on connect error, because connect + * is used in normal execution to detect if sessiond is + * alive. + */ + goto error_connect; } return fd; +error_connect: + close(fd); error: - return -1; + return ret; } /* @@ -184,7 +192,8 @@ int lttcomm_create_unix_sock(const char *pathname) memset(&sun, 0, sizeof(sun)); sun.sun_family = AF_UNIX; - strncpy(sun.sun_path, pathname, strlen(pathname)); + strncpy(sun.sun_path, pathname, sizeof(sun.sun_path)); + sun.sun_path[sizeof(sun.sun_path) - 1] = '\0'; /* Unlink the old file if present */ (void) unlink(pathname);