Fix reading headers of large packets

If it takes more than one pass through readPacket to collect the
entirety of a packet, we would not correctly read the header after
the first pass.  This ensures that any time the packet is at least
long enough for a header, it is decoded.

Change-Id: I210bed20da3005298765ce22826e26539d085125