FreeRadius fault by exec

Anton Kiryushkin swood at fotofor.biz
Mon Dec 23 19:58:50 CET 2019


Hello.

I am trying to use exec and I am receiving the next log on version 3.0.15:

Mon Dec 23 18:54:42 2019 : Debug: (1) multiotp: Program returned code (0)
and output 'Auth-Type = Accept'
Mon Dec 23 18:54:42 2019 : Debug: (1) multiotp: Program executed
successfully
Mon Dec 23 18:54:42 2019 : Debug: (1)     modsingle[authenticate]: returned
from multiotp (rlm_exec)
Mon Dec 23 18:54:42 2019 : Debug: (1)     [multiotp] = ok
Mon Dec 23 18:54:42 2019 : Debug: (1)   } # Auth-Type multiotp = ok
CONSISTENCY CHECK FAILED src/main/process.c[2800]: Expected VALUE_PAIR
"Auth-Type" to be parented by 0x555d99f0afc0 (RADIUS_PACKET), instead
parented by 0x555d99f0ae10 (REQUEST)

Talloc chunk lineage:
0x555d99f0afc0 (RADIUS_PACKET) < 0x555d99f0ae10 (REQUEST) < 0x555d99f0aba0
(auth_listener_pool)
Talloc context level 0:
Talloc chunk lineage:
0x555d99f0ae10 (REQUEST) < 0x555d99f0aba0 (auth_listener_pool)
Talloc context level 0:
SOFT ASSERT FAILED src/lib/pair.c[2437]: 0
CAUGHT SIGNAL: Aborted
Backtrace of last 16 frames:
/usr/lib64/freeradius/libfreeradius-radius.so(fr_fault+0x115)[0x7fac5bb3defc]
/usr/lib64/freeradius/libfreeradius-radius.so(fr_assert_cond+0x4c)[0x7fac5bb3e98f]
/usr/lib64/freeradius/libfreeradius-radius.so(fr_pair_list_verify+0x117)[0x7fac5bb4fb48]
/usr/lib64/freeradius/libfreeradius-server.so(+0x249c7)[0x7fac5bda09c7]
/usr/lib64/freeradius/libfreeradius-server.so(verify_request+0x124)[0x7fac5bda0af1]
radiusd(+0x4664a)[0x555d98c2b64a]
radiusd(+0x43b5a)[0x555d98c28b5a]
radiusd(+0x428a5)[0x555d98c278a5]
radiusd(request_receive+0x7c8)[0x555d98c293d0]
radiusd(+0x1e888)[0x555d98c03888]
radiusd(+0x4b373)[0x555d98c30373]
/usr/lib64/freeradius/libfreeradius-radius.so(fr_event_loop+0x5a6)[0x7fac5bb65f9c]
radiusd(radius_event_process+0x26)[0x555d98c3215a]
radiusd(main+0xc80)[0x555d98c1c426]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7fac5a22b765]
radiusd(_start+0x29)[0x555d98bf9e69]
Calling: gdb radiusd 14119

(gdb) bt
#0  0x00007fac5a2c6eba in waitpid () from /lib64/libc.so.6
#1  0x00007fac5a24bdab in do_system () from /lib64/libc.so.6
#2  0x00007fac5bb3e0b8 in fr_fault () from
/usr/lib64/freeradius/libfreeradius-radius.so
#3  0x00007fac5bb3e98f in fr_assert_cond () from
/usr/lib64/freeradius/libfreeradius-radius.so
#4  0x00007fac5bb4fb48 in fr_pair_list_verify () from
/usr/lib64/freeradius/libfreeradius-radius.so
#5  0x00007fac5bda09c7 in verify_packet () from
/usr/lib64/freeradius/libfreeradius-server.so
#6  0x00007fac5bda0af1 in verify_request () from
/usr/lib64/freeradius/libfreeradius-server.so
#7  0x0000555d98c2b64a in request_will_proxy ()
#8  0x0000555d98c28b5a in request_running ()
#9  0x0000555d98c278a5 in request_queue_or_run ()
#10 0x0000555d98c293d0 in request_receive ()
#11 0x0000555d98c03888 in auth_socket_recv ()
#12 0x0000555d98c30373 in event_socket_handler ()
#13 0x00007fac5bb65f9c in fr_event_loop () from
/usr/lib64/freeradius/libfreeradius-radius.so
#14 0x0000555d98c3215a in radius_event_process ()
#15 0x0000555d98c1c426 in main ()

Could you please where am I wrong?

The exec is simple:

exec py-exec {
        wait = yes
        input_pairs = request
        output_pairs = reply
program = "/local/pyexec/pyexec.py --user=%{User-Name}
--key=%{User-Password}"
        shell_escape = yes
}

-- 
Best regards,
Anton Kiryushkin


More information about the Freeradius-Users mailing list