sql query in post-auth - segmentation fault

Arran Cudbard-Bell a.cudbardb at freeradius.org
Fri Sep 11 14:31:15 CEST 2015


> On 11 Sep 2015, at 13:24, Mohamed Imran (NBI) <Mohamed.Imran at nbi.ac.uk> wrote:
> 
> Hi,
> 
> Having configured FR to talk to our MS SQL server which appears to work fine
> now (radius -X doesn't complain anymore), I've tried a quick test, a very
> basic condition to lookup a mac and update reply with a particular VLAN tag
> if its exists..  and added the following in the post-auth section of the
> default site.
> - - - - - -
> post-auth {
> 	- - - - -
> 	- - - - -
> 	#
> 	sql
> 	if("%{sql:SELECT COUNT(*) FROM tblwindows WHERE MacAddress
> ='%{Calling-Station-ID}'}" ==1){
> 	update reply {
>        		Tunnel-Type = VLAN
>                	Tunnel-Medium-Type = IEEE-802
>                	Tunnel-Private-Group-Id = 100
>        	}
>        	else {
>        	update reply {
>        		Tunnel-Type = VLAN
>                	Tunnel-Medium-Type = IEEE-802
>                	Tunnel-Private-Group-Id = 101
>              	 }
>        	         }
>       	 }
> 
> 
> radiusd -X reports a segmentation fault:
> 
>  # Instantiating module "sql" from file
> /usr/local/etc/raddb/mods-enabled/sql
> rlm_sql (sql): Attempting to connect to database "Computing"
> rlm_sql (sql): Initialising connection pool
>   pool {
>        start = 5
>        min = 3
>        max = 32
>        spare = 10
>        uses = 0
>        lifetime = 0
>        cleanup_interval = 30
>        idle_timeout = 60
>        retry_delay = 30
>        spread = no
>   }
> rlm_sql (sql): Opening additional connection (0), 1 of 32 pending slots used
> rlm_sql (sql): Opening additional connection (1), 1 of 31 pending slots used
> rlm_sql (sql): Opening additional connection (2), 1 of 30 pending slots used
> rlm_sql (sql): Opening additional connection (3), 1 of 29 pending slots used
> rlm_sql (sql): Opening additional connection (4), 1 of 28 pending slots used
>  # Instantiating module "IPASS" from file
> /usr/local/etc/raddb/mods-enabled/realm
>  # Instantiating module "suffix" from file
> /usr/local/etc/raddb/mods-enabled/realm
>  # Instantiating module "realmpercent" from file
> /usr/local/etc/raddb/mods-enabled/realm
>  # Instantiating module "ntdomain" from file
> /usr/local/etc/raddb/mods-enabled/realm
>  # Instantiating module "auth_log" from file
> /usr/local/etc/raddb/mods-enabled/detail.log
> rlm_detail (auth_log): 'User-Password' suppressed, will not appear in detail
> output
>  # Instantiating module "reply_log" from file
> /usr/local/etc/raddb/mods-enabled/detail.log
>  # Instantiating module "pre_proxy_log" from file
> /usr/local/etc/raddb/mods-enabled/detail.log
>  # Instantiating module "post_proxy_log" from file
> /usr/local/etc/raddb/mods-enabled/detail.log
>  # Instantiating module "pap" from file
> /usr/local/etc/raddb/mods-enabled/pap
>  # Instantiating module "expiration" from file
> /usr/local/etc/raddb/mods-enabled/expiration
>  # Instantiating module "preprocess" from file
> /usr/local/etc/raddb/mods-enabled/preprocess
> reading pairlist file /usr/local/etc/raddb/mods-config/preprocess/huntgroups
> reading pairlist file /usr/local/etc/raddb/mods-config/preprocess/hints
>  # Instantiating module "cache_eap" from file
> /usr/local/etc/raddb/mods-enabled/cache_eap
> rlm_cache (cache_eap): Driver rlm_cache_rbtree (module rlm_cache_rbtree)
> loaded and linked
> } # modules
> radiusd: #### Loading Virtual Servers ####
> server { # from file /usr/local/etc/raddb/radiusd.conf
> } # server
> server inner-tunnel { # from file
> /usr/local/etc/raddb/sites-enabled/inner-tunnel
> # Loading authenticate {...}
> # Loading authorize {...}
> Ignoring "ldap" (see raddb/mods-available/README.rst)
> # Loading session {...}
> # Loading post-proxy {...}
> # Loading post-auth {...}
> } # server inner-tunnel
> server default { # from file /usr/local/etc/raddb/sites-enabled/default
> # Loading authenticate {...}
> # Loading authorize {...}
> # Loading preacct {...}
> # Loading accounting {...}
> # Loading post-proxy {...}
> # Loading post-auth {...}
> Segmentation fault
> 
> This same sql statement worked fine when I was initially playing around with
> this and it worked ok against a MySql DB (FR version 2.2.x).
> 
> Ive also tried the same query against our MSSql server using isql on the
> same server and that works fine.
> 
> What am I missing/doing wroing?

Could you run:

gdb --args /usr/sbin/radiusd -X
bt

-Arran

Arran Cudbard-Bell <a.cudbardb at freeradius.org>
FreeRADIUS development team

FD31 3077 42EC 7FCD 32FE 5EE2 56CF 27F9 30A8 CAA2

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 872 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freeradius.org/pipermail/freeradius-users/attachments/20150911/b897ed0d/attachment.sig>


More information about the Freeradius-Users mailing list