xebd / accel-ppp

High performance PPTP/L2TP/PPPoE/IPoE server for Linux
GNU General Public License v2.0
296 stars 108 forks source link

Segmentation fault with latest master - PADR PPPOE #157

Open micron10 opened 2 years ago

micron10 commented 2 years ago

GNU gdb (GDB) 10.2 Copyright (C) 2021 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-pc-linux". Type "show configuration" for configuration details. For bug reporting instructions, please see: https://www.gnu.org/software/gdb/bugs/. Find the GDB manual and other documentation resources online at: http://www.gnu.org/software/gdb/documentation/.

For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from accel-ppp... Starting program: /usr/sbin/accel-ppp -c /etc/accel-ppp/accel-ppp.conf -p /var/run/accel-ppp.pid [New LWP 458190] [New LWP 458191] [New LWP 458192] [New LWP 458193] [New LWP 458194] [New LWP 458195] [New LWP 458196] [New LWP 458197] [New LWP 458198] [New LWP 458199] [New LWP 458200] [New LWP 458201] [New LWP 458202] [New LWP 458203] [New LWP 458204] [New LWP 458205]

Thread 7 "accel-ppp" received signal SIGSEGV, Segmentation fault. [Switching to LWP 458195] allocate_channel (ppp_max_payload=0, cookie=, tr101=0x0, service_name=, relay_sid=0x0, host_uniq=0x7fffd0002030, addr=0x7fffd0002022 "\374\354\332f\365\272\210c\021\031", serv=0x467ee0) at /build/accel-ppp-master/accel-pppd/ctrl/pppoe/pppoe.c:348 348 /build/accel-ppp-master/accel-pppd/ctrl/pppoe/pppoe.c: No such file or directory. (gdb) (gdb) bt full

0 allocate_channel (ppp_max_payload=0, cookie=, tr101=0x0,

service_name=<optimized out>, relay_sid=0x0, host_uniq=0x7fffd0002030,
addr=0x7fffd0002022 "\374\354\332f\365\272\210c\021\031", serv=0x467ee0)
at /build/accel-ppp-master/accel-pppd/ctrl/pppoe/pppoe.c:348
    conn = 0x7fffc00561b8
    old_sid_ptr = <optimized out>
    subscriber_tags = <optimized out>
    conn = <optimized out>
    old_sid_ptr = <optimized out>
    subscriber_tags = <optimized out>
    bit = <optimized out>

1 pppoe_recv_PADR (size=,

pack=0x7fffd000201c "\254\037k\365{\322\374\354\332f\365\272\210c\021\031",
serv=0x467ee0)
at /build/accel-ppp-master/accel-pppd/ctrl/pppoe/pppoe.c:1299
    service_name_tag = <optimized out>
    service_match = <optimized out>
    conn = <optimized out>
    vendor_id = <optimized out>
    ethhdr = 0x7fffd000201c
    hdr = 0x7fffd000202a
    tag = <optimized out>
    host_uniq_tag = 0x7fffd0002030
    ac_cookie_tag = <optimized out>
    tr101_tag = 0x0
    n = <optimized out>
    ppp_max_payload = 0
    relay_sid_tag = 0x0
    ethhdr = <optimized out>
    hdr = <optimized out>
    tag = <optimized out>
    host_uniq_tag = <optimized out>
    relay_sid_tag = <optimized out>
    ac_cookie_tag = <optimized out>
    service_name_tag = <optimized out>
    tr101_tag = <optimized out>
    n = <optimized out>
    service_match = <optimized out>
    conn = <optimized out>
    vendor_id = <optimized out>
    ppp_max_payload = <optimized out>
    svc_index = <optimized out>

2 pppoe_serv_read (data=0x7fffd0002018 "V")

at /build/accel-ppp-master/accel-pppd/ctrl/pppoe/pppoe.c:1348
    serv = 0x467ee0
    pack = 0x7fffd000201c "\254\037k\365{\322\374\354\332f\365\272\210c\021\031"
    hdr = 0x7fffd000202a
    n = <optimized out>

3 0x00007ffff7880d23 in ctx_thread (ctx=)

at /build/accel-ppp-master/accel-pppd/triton/triton.c:280
    call = 0x7fffc8007358
    tt = 1
    h = <optimized out>
    t = <optimized out>
    events = <optimized out>
    h = <optimized out>
    t = <optimized out>
    call = <optimized out>
    tt = <optimized out>

--Type for more, q to quit, c to continue without paging-- events =

4 triton_thread (thread=0x6310a0)

at /build/accel-ppp-master/accel-pppd/triton/triton.c:195
    set = {__val = {516, 0 <repeats 15 times>}}
    sig = 10
    need_free = <optimized out>
    stack = 0x0

5 0x00007ffff76f383f in ?? () from /lib64/libc.so.6

No symbol table info available.

6 0x00007ffff777f48c in ?? () from /lib64/libc.so.6

No symbol table info available.

i send tcpdump cap to @DmitriyEshenko from time of problem.

part of tcpdump :

ac:1f:6b:f5:7b:d2 > fc:ec:da:66:f5:ba, PPPoE D, length 42: PPPoE PADT [ses 0xd440] [AC-Name "ETEST"] [Service-Name "etest"] fc:ec:da:66:f5:ba > ac:1f:6b:f5:7b:d2, PPPoE D, length 86: [type 6]PPPoE PADR [Host-Uniq 0xA047D70CF6D8000005000600] [AC-Cookie 0x4973E9E298F8F5230123C452F2CAC08F1F275BBAA5BBBD8D] [AC-Name "ET.EST"] [Service-Name "etest"] fc:ec:da:66:f5:ba > ff:ff:ff:ff:ff:ff, PPPoE D, length 60: PPPoE PADI [Host-Uniq 0xA047D70CF6D8000005020600] [TAG-0x1101 "epcit.l"] ac:1f:6b:f5:7b:d2 > fc:ec:da:66:f5:ba, PPPoE D, length 96: PPPoE PADO [AC-Name "ETEST"] [Service-Name "etest"] [Service-Name "den_01"] [AC-Cookie 0x4973E9E298F8F5230123C452F2CAC08F4176B1EF29091EF2] [Host-Uniq 0xA047D70CF6D8000005020600] fc:ec:da:66:f5:ba > ac:1f:6b:f5:7b:d2, PPPoE D, length 86: PPPoE PADR [|pppoe] fc:ec:da:66:f5:ba > ac:1f:6b:f5:7b:d2, PPPoE D, length 86: PPPoE PADR [Host-Uniq 0xA047D70CF6D8000005020600] [AC-Cookie 0x4973E9E298F8F5230123C452F2CAC08F447671EF29091EF2] [AC-Name "ETEST\"] [TAG-0x501 "etest"] fc:ec:da:66:f5:ba > ac:1f:6b:f5:7b:d2, PPPoE D, length 87: PPPoE PADR [Host-Uniq 0xA047DB0CF6D8000005020600] [AC-Cookie 0x4973E9E298F8F5230123C452F2CAC08F4176B1EF29091EF2] [AC-Name "ETEST"] [Service-Name "etest"] fc:ec:da:66:f5:ba > ac:1f:6b:f5:7b:d2, PPPoE D, length 86: PPPoE PADR [Host-Uniq 0xA047D70CF6D8000005020600] [AC-Cookie 0x4973C9E298F8F5230123C452F2CAC08F4176B1EF29091EF2] [AC-Name "ETEST"] [Service-Name "etest"] fc:ec:da:66:f5:ba > ac:1f:6b:f5:7b:d2, PPPoE D, length 86: PPPoE PADR [Host-Uniq 0xA047D70CF6D8000005020600] [AC-Cookie 0x4973E92298F8F5230123C452F2DACA8F4176B1EF29091EF2] [AC-Name "ETEST"] [|pppoe] fc:ec:da:66:f5:ba > ff:ff:ff:ff:ff:ff, PPPoE D, length 60: PPPoE PADI [Host-Uniq 0xA047D70C06D8000005020600] [Service-Name "etest"] fc:ec:da:66:f5:ba > ff:ff:ff:ff:fd:ff, PPPoE D, length 60: PPPoE PADI [Host-Uniq 0xA047D70CF6D8000005020600] [Service-Name "etest"] fc:ec:da:66:f5:ba > ff:ff:ff:ff:ff:ff, PPPoE D, length 60: PPPoE PADI [Host-Uniq 0xA047D70CF6D8000005020600] [Service-Name "etest"] fc:ec:da:66:f5:ba > ff:ff:ff:ff:ff:ff, PPPoE D, length 61: PPPoE PAD-61 [Host-Uniq 0xA047D70EF6D8000005020600] [Service-Name "e.est"] [|pppoe] fc:ec:da:66:f5:ba > ff:ff:ff:ff:ff:ff, PPPoE D, length 62: PPPoE PADI [Host-Uniq 0xA047D70CF6D8000005020600] [|pppoe]

And last line from debug.log:

[2021-10-02 20:46:39.905] vlan1467: recv [PPPoE PADR fc:ec:da:66:f5:ba => ac:1f:6b:f5:7b:d2 sid=0000 <AC-Cookie 7c59a0a51bdb97a6cc6766d7a2c1edf70c16e2ba313d424a> <Unknown (401)>]