- while (cp < mp->b_wptr
- && wptr < p->pai_bufftail->b_datap->db_lim
- && (c = *cp) != PPP_FLAG && c != PPP_ESCAPE) {
- if (c >= 0x20 || (p->pai_rasyncmap & (1 << c)) == 0) {
- STUFF_CHAR(p, c);
- p->pai_fcs = PPP_FCS(p->pai_fcs, c);
+
+ if (p->pai_buffcount >= PPP_HDRLEN) {
+ while (cp < mp->b_wptr
+ && wptr < p->pai_bufftail->b_datap->db_lim
+ && (c = *cp) != PPP_FLAG && c != PPP_ESCAPE) {
+ if (c >= 0x20 || (p->pai_rasyncmap & (1 << c)) == 0) {
+ STUFF_CHAR(p, c);
+ p->pai_fcs = PPP_FCS(p->pai_fcs, c);
+ }
+ ++cp;