a78ca332ec
When PPP gets an uncompressed packet, it attempts to save off the TCP/IP header for use in decompressing subsequant packets. If PPP gets garbage (such as what happens when there is a port speed mismatch or modem line noise), it will occasionally mistake the packet as a valid uncompressed packet. When it tries to save off the header, it doesn't bother to check for the validity of the header length and will happily clobber not only the PPP VJC data structure, but parts of other process memory that happens to follow it...causing, ahem, undesired behavior.