diff options
author | Kozlov Dmitry <dima@server> | 2010-11-29 10:51:21 +0300 |
---|---|---|
committer | Kozlov Dmitry <dima@server> | 2010-11-29 10:51:21 +0300 |
commit | c5c87c41e79085e2c24999804e9076435e03f4f9 (patch) | |
tree | 42be077370e5fde6982f846a26d1376b30e885d6 /accel-pptpd | |
parent | e5eddec6f9baf27aab61931bb657bc9764a2f6b4 (diff) | |
download | accel-ppp-c5c87c41e79085e2c24999804e9076435e03f4f9.tar.gz accel-ppp-c5c87c41e79085e2c24999804e9076435e03f4f9.zip |
l2tp: fixed bug of incorrect handling wrong length packets
Diffstat (limited to 'accel-pptpd')
-rw-r--r-- | accel-pptpd/accel-pptp.conf | 3 | ||||
-rw-r--r-- | accel-pptpd/ctrl/l2tp/packet.c | 7 |
2 files changed, 6 insertions, 4 deletions
diff --git a/accel-pptpd/accel-pptp.conf b/accel-pptpd/accel-pptp.conf index 7ce85a56..aab1a1bb 100644 --- a/accel-pptpd/accel-pptp.conf +++ b/accel-pptpd/accel-pptp.conf @@ -1,6 +1,7 @@ [modules] #path=/usr/local/lib/accel-pptp log_file +#log_tcp #log_pgsql pptp #pppoe @@ -83,12 +84,14 @@ gw-ip-address=192.168.0.1 log-file=/var/log/accel-pptp/accel-pptp.log log-emerg=/var/log/accel-pptp/emerg.log #log-debug=/dev/stdout +#log-tcp=127.0.0.1:3000 copy=1 #color=1 #per-user-dir=per_user #per-session-dir=per_session #per-session=1 level=3 +#log-tcp=127.0.0.1:3000 [log-pgsql] conninfo=user=log diff --git a/accel-pptpd/ctrl/l2tp/packet.c b/accel-pptpd/ctrl/l2tp/packet.c index 40e67596..86461337 100644 --- a/accel-pptpd/ctrl/l2tp/packet.c +++ b/accel-pptpd/ctrl/l2tp/packet.c @@ -127,13 +127,13 @@ int l2tp_recv(int fd, struct l2tp_packet_t **p) if (n < sizeof(*hdr)) { if (conf_verbose) log_warn("l2tp: short packet received (%i/%i)\n", n, sizeof(*hdr)); - goto out_err; + goto out_err_hdr; } if (n < ntohs(hdr->length)) { if (conf_verbose) log_warn("l2tp: short packet received (%i/%i)\n", n, ntohs(hdr->length)); - goto out_err; + goto out_err_hdr; } if (hdr->T == 0) @@ -166,8 +166,7 @@ int l2tp_recv(int fd, struct l2tp_packet_t **p) pack = mempool_alloc(pack_pool); if (!pack) { log_emerg("l2tp: out of memory\n"); - mempool_free(buf); - return -1; + goto out_err_hdr; } memset(pack, 0, sizeof(*pack)); |