--- gvpe/src/vpn_dns.C 2011/10/18 10:54:17 1.53 +++ gvpe/src/vpn_dns.C 2011/10/18 11:07:28 1.54 @@ -399,17 +399,20 @@ vpn_packet *byte_stream::get () { + if (fill < 2) + return 0; + unsigned int len; for (;;) { len = (data [0] << 8) | data [1]; - if (len <= MAXSIZE || fill < 2) + if (len <= MAXSIZE) break; // TODO: handle this better than skipping, e.g. by reset - slog (L_DEBUG, _("DNS: corrupted packet stream skipping a byte...")); + slog (L_DEBUG, _("DNS: corrupted packet (%02x %02x) stream skipping a byte..."), data [0], data [1]); remove (1); }