Initialize offset correctly when dumping types.
authorMartin Pieuchot <mpi@openbsd.org>
Fri, 11 Nov 2016 16:59:24 +0000 (17:59 +0100)
committerMartin Pieuchot <mpi@openbsd.org>
Fri, 11 Nov 2016 16:59:24 +0000 (17:59 +0100)
ctfdump.c

index c6536b51f90796deaca3a175448556dcad07c890..7fb8d085496836c24c1db99f60c18b5b007a491f 100644 (file)
--- a/ctfdump.c
+++ b/ctfdump.c
@@ -376,7 +376,7 @@ ctf_dump(const char *p, size_t size, uint8_t flags)
        }
 
        if (flags & DUMP_TYPE) {
-               unsigned int             idx = 1, offset = 0;
+               unsigned int             idx = 1, offset = cth->cth_typeoff;
 
                while (offset < cth->cth_stroff) {
                        offset += ctf_dump_type(cth, data, dlen, offset, idx++);
@@ -394,7 +394,7 @@ unsigned int
 ctf_dump_type(struct ctf_header *cth, const char *data, off_t dlen,
     unsigned int offset, unsigned int idx)
 {
-       const char              *p = data + cth->cth_typeoff + offset;
+       const char              *p = data + offset;
        const struct ctf_type   *ctt = (struct ctf_type *)p;
        unsigned short           i, kind, vlen, root;
        unsigned int             eob, toff;