X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fcompat%2Fcompat-epoll.c;h=1380ce85527a74dae304b2777de5a72c489b6b5c;hp=903a9f8256eeafad9e678f565ba6c1b60f0e9c2a;hb=6cd525e813795a1d5e38feac8dedf2c73ffb1274;hpb=33b141366b29aa086ecb8d06808d7ba91f83cb1e diff --git a/src/common/compat/compat-epoll.c b/src/common/compat/compat-epoll.c index 903a9f825..1380ce855 100644 --- a/src/common/compat/compat-epoll.c +++ b/src/common/compat/compat-epoll.c @@ -250,6 +250,7 @@ error: void compat_epoll_set_max_size(void) { int ret, fd; + size_t size_ret; char buf[64]; poll_max_size = DEFAULT_POLL_SIZE; @@ -259,11 +260,16 @@ void compat_epoll_set_max_size(void) return; } - ret = read(fd, buf, sizeof(buf)); - if (ret < 0) { + size_ret = lttng_read(fd, buf, sizeof(buf)); + /* + * Allow reading a file smaller than buf, but keep space for + * final \0. + */ + if (size_ret < 0 || size_ret >= sizeof(buf)) { PERROR("read set max size"); goto error; } + buf[size_ret] = '\0'; poll_max_size = atoi(buf); if (poll_max_size == 0) {