size = bfd_getl16 (data + off);
off += sizeof (uint16_t);
- if (size + off > s->size || size <= sizeof (uint16_t))
+ if (size + off > s->size || size < sizeof (uint16_t))
{
free (data);
bfd_set_error (bfd_error_bad_value);
0480 3a001d15 2a100000 00000000 00000000 :...*...........
0490 27000000 49556e6b 6e6f776e 00517565 '...IUnknown.Que
04a0 7279496e 74657266 61636500 41646452 ryInterface.AddR
- 04b0 65660052 656c6561 736500f1 ef.Release..
+ 04b0 65660052 656c6561 736500f1 02000312 ef.Release......
+ 04c0 22000515 00000000 2c100000 00000000 ".......,.......
+ 04d0 00000000 0100656d 7074795f 73747275 ......empty_stru
+ 04e0 637400f1 ct..
/* Type 102a, virtual function table */
.vftable1:
-.short .types_end - .vftable1 - 2
+.short .fieldlist12 - .vftable1 - 2
.short LF_VFTABLE
.long 0x1029 /* type */
.long 0 /* base vftable */
.vftable1_names_end:
.byte 0xf1 /* padding */
+/* Type 102b, empty LF_FIELDLIST */
+.fieldlist12:
+.short .struct7 - .fieldlist12 - 2
+.short LF_FIELDLIST
+
+/* Type 102c, empty struct */
+.struct7:
+.short .types_end - .struct7 - 2
+.short LF_STRUCTURE
+.short 0 /* no. members */
+.short 0 /* property */
+.long 0x102b /* field list */
+.long 0 /* type derived from */
+.long 0 /* type of vshape table */
+.short 1 /* size */
+.asciz "empty_struct" /* name */
+.byte 0xf1 /* padding */
+
.types_end:
binary scan $data i end_type
# end_type is one greater than the last type in the stream
- if { $end_type != 0x102c } {
+ if { $end_type != 0x102e } {
fail "Incorrect end type value in TPI stream."
} else {
pass "Correct end type value in TPI stream."