diff options
Diffstat (limited to 'libctf/ctf-archive.c')
-rw-r--r-- | libctf/ctf-archive.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/libctf/ctf-archive.c b/libctf/ctf-archive.c index abae90d..54c49b3 100644 --- a/libctf/ctf-archive.c +++ b/libctf/ctf-archive.c @@ -402,8 +402,9 @@ ctf_arc_symsect_endianness (ctf_archive_t *arc, int little_endian) const ctf_preamble_t * ctf_arc_bufpreamble (const ctf_sect_t *ctfsect) { - if (ctfsect->cts_size > sizeof (uint64_t) && - (le64toh ((*(uint64_t *) ctfsect->cts_data)) == CTFA_MAGIC)) + if (ctfsect->cts_data != NULL + && ctfsect->cts_size > sizeof (uint64_t) + && (le64toh ((*(uint64_t *) ctfsect->cts_data)) == CTFA_MAGIC)) { struct ctf_archive *arc = (struct ctf_archive *) ctfsect->cts_data; return (const ctf_preamble_t *) ((char *) arc + le64toh (arc->ctfa_ctfs) @@ -424,8 +425,9 @@ ctf_arc_bufopen (const ctf_sect_t *ctfsect, const ctf_sect_t *symsect, int is_archive; ctf_dict_t *fp = NULL; - if (ctfsect->cts_size > sizeof (uint64_t) && - (le64toh ((*(uint64_t *) ctfsect->cts_data)) == CTFA_MAGIC)) + if (ctfsect->cts_data != NULL + && ctfsect->cts_size > sizeof (uint64_t) + && (le64toh ((*(uint64_t *) ctfsect->cts_data)) == CTFA_MAGIC)) { /* The archive is mmappable, so this operation is trivial. |