X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=src%2Fcommon%2Findex%2Findex.c;h=c94ec701c869f2df3bf61e2845409d3c46697131;hb=bb346b1a1a6b58c835b0a246d5bf7e734c3d3904;hp=b5591d137c923a97617005f9a85145e09264cba4;hpb=8dbd7d838dc2276e5a25057c76c2e219e1d2661b;p=lttng-tools.git diff --git a/src/common/index/index.c b/src/common/index/index.c index b5591d137..c94ec701c 100644 --- a/src/common/index/index.c +++ b/src/common/index/index.c @@ -128,12 +128,16 @@ error: int lttng_index_file_write(const struct lttng_index_file *index_file, const struct ctf_packet_index *element) { + int fd; + size_t len; ssize_t ret; - int fd = index_file->fd; - size_t len = index_file->element_len; + assert(index_file); assert(element); + fd = index_file->fd; + len = index_file->element_len; + if (fd < 0) { goto error; } @@ -245,6 +249,10 @@ struct lttng_index_file *lttng_index_file_open(const char *path_name, ERR("Invalid header version"); goto error_close; } + if (element_len > sizeof(struct ctf_packet_index)) { + ERR("Index element length too long"); + goto error_close; + } index_file->fd = read_fd; index_file->major = major;