Bug #1166 ยป 0001-Fix-lttng-crash-detect-truncated-files.patch
src/bin/lttng-crash/lttng-crash.c | ||
---|---|---|
}
|
||
static
|
||
int get_crash_layout(struct lttng_crash_layout *layout, int fd)
|
||
int get_crash_layout(struct lttng_crash_layout *layout, int fd,
|
||
const char *input_file)
|
||
{
|
||
char *map;
|
||
int ret = 0, unmapret;
|
||
... | ... | |
const struct crash_abi_unknown *abi;
|
||
uint16_t endian;
|
||
enum lttng_crash_type layout_type;
|
||
struct stat stat;
|
||
ret = fstat(fd, &stat);
|
||
if (ret < 0) {
|
||
PERROR("fstat");
|
||
return -1;
|
||
}
|
||
if (stat.st_size < RB_CRASH_DUMP_ABI_LEN) {
|
||
ERR("File: '%s' truncated", input_file);
|
||
return -1;
|
||
}
|
||
map = mmap(NULL, RB_CRASH_DUMP_ABI_LEN, PROT_READ, MAP_PRIVATE,
|
||
fd, 0);
|
||
if (map == MAP_FAILED) {
|
||
... | ... | |
}
|
||
/* Query the crash ABI layout */
|
||
ret = get_crash_layout(&layout, fd_src);
|
||
ret = get_crash_layout(&layout, fd_src, input_file);
|
||
if (ret) {
|
||
goto close_src;
|
||
}
|