Strangeness in work 'radgroup_check_query' through 'rlm_sql_unixodbc'

vanish vanishox at coltel.ru
Tue Jan 12 11:36:18 CET 2016


Hello, need help.

1. i have a test-machine with Ubuntu 14.04, Freeradius-server v2.1.12
and Informix Database Server v 10.00.

2. i use rlm_sql_unixodbc to connect Informix server.

3.  When freeradius sends next simple request in Informix:

group_membership_query = "select 'simult' groupname from TABLE(SET {1})"

   gets the answer:

 - rlm_sql_unixodbc: 07009 [unixODBC][Informix][Informix 
ODBC Driver]Invalid descriptor index.

This request works in isql:

SQL> select 'simult' groupname from TABLE(SET {1});
+----------+
| groupname|
+----------+
| simul    |
+----------+

4. Here the debug with '-X' option:

Ready to process requests.
rad_recv: Access-Request packet from host 10.10.10.10 port 47385,
id=240, length=58
	User-Name = "test"
	CHAP-Password = 0xf05090f9d0fd90909fdfdg112
	Framed-Protocol = PPP

# Executing section authorize from
file /etc/freeradius/sites-enabled/default
+- entering group authorize {...}
++[preprocess] returns ok
++? if (Framed-Protocol == PPP)
? Evaluating (Framed-Protocol == PPP) -> TRUE
++? if (Framed-Protocol == PPP) -> TRUE
++- entering if (Framed-Protocol == PPP) {...}
[chap] Setting 'Auth-Type := CHAP'
+++[chap] returns ok
++- if (Framed-Protocol == PPP) returns ok
++[mschap] returns noop
[sql] 	expand: %{User-Name} -> test
[sql] sql_set_user escaped user --> 'test'
rlm_sql (sql): Reserving sql socket id: 3
[sql] 	expand: SELECT first 1 1 id, '%{SQL-User-Name}' username,
'Password' attribute, trim(p.password) value, '==' op FROM acc a inner
join details p on a.acc_id = p.acc_id WHERE username =
'%{SQL-User-Name}' 
-> 
SELECT first 1 1 id, 'test' username, 'Password' attribute,
trim(p.password) value, '==' op FROM acc a inner join details p on
a.acc_id = p.acc_id WHERE  username = 'test'
WARNING: Found User-Password == "...".
WARNING: Are you sure you don't mean Cleartext-Password?
WARNING: See "man rlm_pap" for more information.
[sql] User found in radcheck table
[sql] 	expand: select 1 id, a.control username, 'Cisco-Account-Info'
attribute, r.value value, '=' op from acc a inner join acc_b b on
a.acc_id = b.acc_id inner join tq_p tp on tp.id = a.tq_p_id

............... and so on...............

[sql] 	expand: select 'simult' groupname from TABLE(SET {1}) -> select
'simult' groupname from TABLE(SET {1})
rlm_sql_unixodbc: 07009 [unixODBC][Informix][Informix ODBC
Driver]Invalid descriptor index. <---- Problem !!!!
rlm_sql (sql): Released sql socket id: 3

............... and so on...............

5. Others sql queries from dialup.conf such as:

 - nas_query 
 - authorize_check_query
 - authorize_reply_query

   works well.

6. Is this bug only for group_membership_query? Does anyone experienced
this ?
     

-- 
============================================
С уважением, Богучарский Иван Владимирович.
Начальник СУТС ОРЭТС и ШПД ЗАО "Коламбия-Телеком".
тел. 8-937-084-25-89.



More information about the Freeradius-Users mailing list