]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Fix potential SEGV in SQL simultaneous use check
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Wed, 30 Dec 2015 06:24:42 +0000 (01:24 -0500)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Wed, 30 Dec 2015 06:24:42 +0000 (01:24 -0500)
src/modules/rlm_sql/rlm_sql.c

index 5b539532b19afa9de16cc79ea6e94cbbc02d7a67..23bd8fb750880af531d39f8b7335b2faee1612ed 100644 (file)
@@ -225,10 +225,7 @@ static ssize_t sql_xlat(void *instance, REQUEST *request, char const *query, cha
        if (rcode != RLM_SQL_OK) goto query_error;
 
        rcode = rlm_sql_fetch_row(inst, request, &handle);
-       if (rcode) {
-               (inst->module->sql_finish_select_query)(handle, inst->config);
-               goto query_error;
-       }
+       if (rcode) goto query_error;
 
        row = handle->row;
        if (!row) {
@@ -1531,7 +1528,7 @@ static rlm_rcode_t mod_checksimul(void *instance, REQUEST * request)
 
        if (rlm_sql_select_query(inst, request, &handle, expanded) != RLM_SQL_OK) {
                rcode = RLM_MODULE_FAIL;
-               goto finish;
+               goto release;   /* handle may no longer be valid */
        }
 
        ret = rlm_sql_fetch_row(inst, request, &handle);