<feed xmlns='http://www.w3.org/2005/Atom'>
<title>accel-ppp.git/accel-pppd/ctrl/l2tp/packet.c, branch stable</title>
<subtitle>High performance PPTP/L2TP/SSTP/PPPoE/IPoE server for Linux (mirror of https://github.com/accel-ppp/accel-ppp.git)
</subtitle>
<id>https://git.amelek.net/accel-ppp/accel-ppp.git/atom?h=stable</id>
<link rel='self' href='https://git.amelek.net/accel-ppp/accel-ppp.git/atom?h=stable'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/'/>
<updated>2025-12-10T17:16:42+00:00</updated>
<entry>
<title>crypto: Removed internal tomcat crypto.</title>
<updated>2025-12-10T17:16:42+00:00</updated>
<author>
<name>Andrii Melnychenko</name>
<email>a.melnychenko@vyos.io</email>
</author>
<published>2025-09-29T16:14:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=c912d09018828745e3bcba268cd02a611e324d54'/>
<id>urn:sha1:c912d09018828745e3bcba268cd02a611e324d54</id>
<content type='text'>
Signed-off-by: Andrii Melnychenko &lt;a.melnychenko@vyos.io&gt;
</content>
</entry>
<entry>
<title>build: fix compile errors on GCC 14</title>
<updated>2024-08-27T22:41:58+00:00</updated>
<author>
<name>Sergey V. Lobanov</name>
<email>sergey@lobanov.in</email>
</author>
<published>2024-08-27T21:44:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=966c2bc8df039c67f4711ba9bb3f267fbd405c8d'/>
<id>urn:sha1:966c2bc8df039c67f4711ba9bb3f267fbd405c8d</id>
<content type='text'>
This patch fixes compile errors on GCC 14 like the following

/root/accel-ppp/accel-pppd/radius/packet.c: In function 'rad_packet_recv':
/root/accel-ppp/accel-pppd/radius/packet.c:142:72: error: passing argument 5 of 'recvfrom' from incompatible pointer type [-Wincompatible-pointer-types]
  142 |                         n = recvfrom(fd, pack-&gt;buf, REQ_LENGTH_MAX, 0, addr, &amp;addr_len);
      |                                                                        ^~~~
      |                                                                        |
      |                                                                        struct sockaddr_in *
In file included from /usr/include/netinet/in.h:10,
                 from /usr/include/arpa/inet.h:9,
                 from /root/accel-ppp/accel-pppd/radius/packet.c:10:
/usr/include/sys/socket.h:397:55: note: expected 'struct sockaddr * restrict' but argument is of type 'struct sockaddr_in *'

Reference: https://gcc.gnu.org/gcc-14/porting_to.html
</content>
</entry>
<entry>
<title>l2tp: fix RCE through buffer overflow &amp; fix LE/BE compatibility</title>
<updated>2020-09-05T21:38:35+00:00</updated>
<author>
<name>Vladislav Grishenko</name>
<email>themiron@mail.ru</email>
</author>
<published>2020-09-05T21:38:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=2324bcd5ba12cf28f47357a8f03cd41b7c04c52b'/>
<id>urn:sha1:2324bcd5ba12cf28f47357a8f03cd41b7c04c52b</id>
<content type='text'>
Unsufficent checks of valid l2tp header &amp; avp length cause possible
RCE through buffer overflow, reported by https://github.com/WinMin
swings &amp; leommxj, Chaitin Security Research Lab. Add missed header
length and avp length validation to fix the issue.

Order of struct bitfields is implementation-defined so current code
doesn't play well with big-endian arch. switch to explicit flag bit
checking/gathering to fix the issue.

RFC 2661 and 3931 requires that length, seqeuence flags must be set
and offset flag must not be set, so avp-premissive can't help in
this cases.
</content>
</entry>
<entry>
<title>l2tp: skip obsolete session data packets from logging</title>
<updated>2017-12-05T12:03:40+00:00</updated>
<author>
<name>Vladislav Grishenko</name>
<email>themiron@mail.ru</email>
</author>
<published>2017-01-27T22:02:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=faf5bf8a0f40119273b94d8c80bafaaabb3d185e'/>
<id>urn:sha1:faf5bf8a0f40119273b94d8c80bafaaabb3d185e</id>
<content type='text'>
 After session is freed on our end, kernel doesn't bother with possible
 incoming data packets and just passes them to userspace, in turn
 they are mistreated as short control packets with corresponding errors.
 Since there's no special data packet handling, just ignore them.
</content>
</entry>
<entry>
<title>remove trailing whitespaces</title>
<updated>2014-11-22T05:56:40+00:00</updated>
<author>
<name>Dmitry Kozlov</name>
<email>xeb@mail.ru</email>
</author>
<published>2014-11-22T05:56:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=81ca3923a29ea9b67f7291be23b210019546aa5f'/>
<id>urn:sha1:81ca3923a29ea9b67f7291be23b210019546aa5f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>l2tp: introduce data packet sequencing and reorder timeout support</title>
<updated>2013-10-02T18:57:42+00:00</updated>
<author>
<name>Vladislav Grishenko</name>
<email>themiron@mail.ru</email>
</author>
<published>2013-09-27T07:56:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=21d36db2bad56b6389873b1c10e45f36938ed5fc'/>
<id>urn:sha1:21d36db2bad56b6389873b1c10e45f36938ed5fc</id>
<content type='text'>
Signed-off-by: Vladislav Grishenko &lt;themiron@mail.ru&gt;
</content>
</entry>
<entry>
<title>l2tp: Handle 64 bits attributes</title>
<updated>2013-04-17T05:06:35+00:00</updated>
<author>
<name>Guillaume Nault</name>
<email>g.nault@alphalink.fr</email>
</author>
<published>2013-04-09T19:43:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=d3ad0e29c57c74c93db97f165bfa43024e180db3'/>
<id>urn:sha1:d3ad0e29c57c74c93db97f165bfa43024e180db3</id>
<content type='text'>
Define l2tp_packet_add_int64() to create attributes of 64 bits long
integers.

Signed-off-by: Guillaume Nault &lt;g.nault@alphalink.fr&gt;
</content>
</entry>
<entry>
<title>l2tp: Full hidden AVPs support</title>
<updated>2013-04-17T05:06:35+00:00</updated>
<author>
<name>Guillaume Nault</name>
<email>g.nault@alphalink.fr</email>
</author>
<published>2013-04-09T19:43:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=9ec0d6beda4249ca0483e461bd5fb361f7a28efa'/>
<id>urn:sha1:9ec0d6beda4249ca0483e461bd5fb361f7a28efa</id>
<content type='text'>
Add option "hide-avps" in the "l2tp" section for hiding attributes
sent to peer. This same option is also made available on accel-ppp's
command line interface:
  accel-ppp# tunnel create tunnel peer-addr 192.0.2.1 hide-avps 1

Attribute hiding is performed upon attribute creation (in the
l2tp_packet_add_*() functions family) rather than upon packet sending.
This avoid running the cipher for every retransmission; the counterpart
is that l2tp_packet_print() can't dump original attributes of hidden
AVPs.

Currently, only one random vector is used for all hidden AVPs in a
packet. This is easily extensible though, as the 'last_RV' field in
struct l2tp_packet_t may be overridden to use new vectors for next
AVPs.

Signed-off-by: Guillaume Nault &lt;g.nault@alphalink.fr&gt;
</content>
</entry>
<entry>
<title>l2tp: Handle incoming hidden AVPs</title>
<updated>2013-04-17T05:06:35+00:00</updated>
<author>
<name>Guillaume Nault</name>
<email>g.nault@alphalink.fr</email>
</author>
<published>2013-04-09T19:42:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=76f30e4e2d664d3c10f988b8d9660b478718c777'/>
<id>urn:sha1:76f30e4e2d664d3c10f988b8d9660b478718c777</id>
<content type='text'>
Decode hidden AVPs on reception. This is transparent for functions in
l2tp.c (except for the presence of the Random Vector AVP).

Signed-off-by: Guillaume Nault &lt;g.nault@alphalink.fr&gt;
</content>
</entry>
<entry>
<title>l2tp: Fix endianness of 64 bits AVPs (reception)</title>
<updated>2013-04-17T05:06:35+00:00</updated>
<author>
<name>Guillaume Nault</name>
<email>g.nault@alphalink.fr</email>
</author>
<published>2013-04-09T19:42:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=a5313507e0213647c6e745b9f2746493a1b0ddc5'/>
<id>urn:sha1:a5313507e0213647c6e745b9f2746493a1b0ddc5</id>
<content type='text'>
Received attributes of type ATTR_TYPE_INT64 are transferred to upper
layer in network byte order while any other integer type uses host
byte order.
This patch converts int64 values to host byte order so that they can be
used like other integer types.

Signed-off-by: Guillaume Nault &lt;g.nault@alphalink.fr&gt;
</content>
</entry>
</feed>
