]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
add REQUEST* and void* to escape functions
authorPhil Mayers <p.mayers@imperial.ac.uk>
Fri, 21 Sep 2012 16:47:25 +0000 (17:47 +0100)
committerPhil Mayers <p.mayers@imperial.ac.uk>
Fri, 5 Oct 2012 11:52:20 +0000 (12:52 +0100)
src/include/radiusd.h
src/main/mainconfig.c
src/main/xlat.c
src/modules/rlm_ldap/rlm_ldap.c
src/modules/rlm_linelog/rlm_linelog.c
src/modules/rlm_redis/rlm_redis.c
src/modules/rlm_sql/rlm_sql.c
src/modules/rlm_sql/rlm_sql.h
src/modules/rlm_sql_log/rlm_sql_log.c
src/modules/rlm_sqlcounter/rlm_sqlcounter.c

index feeff4871308a5a0e7fd1e19bb854a11836cf51c..5ca235cc0965830e0910e57e1991648d1636ffe4 100644 (file)
@@ -712,7 +712,7 @@ VALUE_PAIR *radius_pairmake(REQUEST *request, VALUE_PAIR **vps,
                            int operator);
 
 /* xlat.c */
-typedef size_t (*RADIUS_ESCAPE_STRING)(char *out, size_t outlen, const char *in);
+typedef size_t (*RADIUS_ESCAPE_STRING)(REQUEST *, char *out, size_t outlen, const char *in, void *arg);
 
 int            radius_xlat(char * out, int outlen, const char *fmt,
                           REQUEST * request, RADIUS_ESCAPE_STRING func, void *funcarg);
index 5e51e3656a00116f712f4fe448ddc8f0a4a70bac..b5fc646182e208c558ffd3ba60f069bde9c82e88 100644 (file)
@@ -296,7 +296,7 @@ static const CONF_PARSER bootstrap_config[] = {
 #define MAX_ARGV (256)
 
 
-static size_t config_escape_func(char *out, size_t outlen, const char *in)
+static size_t config_escape_func(UNUSED REQUEST *request, char *out, size_t outlen, const char *in, UNUSED void *arg)
 {
        size_t len = 0;
        static const char *disallowed = "%{}\\'\"`";
index 4d8974deb7e32ccde724e799cc60f20ae19ea878..702ceb10957ffb287766bedbc1e8b3ab8b95fbba 100644 (file)
@@ -1111,7 +1111,7 @@ do_xlat:
                char tmpbuf[8192];
                retlen = c->do_xlat(c->instance, request, xlat_str, tmpbuf, sizeof(tmpbuf));
                if (retlen > 0) {
-                       retlen = func(q, freespace, tmpbuf);
+                       retlen = func(request, q, freespace, tmpbuf, funcarg);
                        if (retlen > 0) {
                                RDEBUG2("string escaped from \'%s\' to \'%s\'", tmpbuf, q);
                        } else if (retlen < 0) {
@@ -1146,7 +1146,7 @@ done:
  *  we use this one.  It simplifies the coding, as the check for
  *  func == NULL only happens once.
  */
-static size_t xlat_copy(char *out, size_t outlen, const char *in)
+static size_t xlat_copy(UNUSED REQUEST *request, char *out, size_t outlen, const char *in, UNUSED void *arg)
 {
        int freespace = outlen;
 
index be9517253ff662112079d47c12c0ebff8285cec1..fcd555ab263d6ba94bb093ae24b8a9498e32992d 100644 (file)
@@ -957,7 +957,7 @@ retry:
 /*
  *     Translate the LDAP queries.
  */
-static size_t ldap_escape_func(char *out, size_t outlen, const char *in)
+static size_t ldap_escape_func(UNUSED REQUEST *request, char *out, size_t outlen, const char *in, void *arg)
 {
        size_t len = 0;
 
index a9fce39d7d4d394029f72a09b98fb1eb791c834a..111f770fa12424464a263312495f6efa04606955 100644 (file)
@@ -165,7 +165,9 @@ static int linelog_instantiate(CONF_SECTION *conf, void **instance)
 /*
  *     Escape unprintable characters.
  */
-static size_t linelog_escape_func(char *out, size_t outlen, const char *in)
+static size_t linelog_escape_func(UNUSED REQUEST *request,
+               char *out, size_t outlen, const char *in,
+               UNUSED void *arg)
 {
        int len = 0;
 
index 5eebae886899893908b6a9de61daac518793c9cf..1ed0809c94e101fb3b71bbb93104910409e27032 100644 (file)
@@ -137,7 +137,8 @@ static void *redis_create_conn(void *ctx)
        return dissocket;
 }
 
-static size_t redis_escape_func(char *out, size_t outlen, const char *in)
+static size_t redis_escape_func(UNUSED REQUEST *request,
+       char *out, size_t outlen, const char *in, UNUSED void *arg)
 {
 
        size_t len = 0;
index ef877c659cf796035be112620d6dac96fddcd84f..0ff428b13b7344c9e1c0ac6e1be875a80bd1984a 100644 (file)
@@ -125,7 +125,7 @@ static int fallthrough(VALUE_PAIR *vp)
  *     Yucky prototype.
  */
 static int generate_sql_clients(SQL_INST *inst);
-static size_t sql_escape_func(char *out, size_t outlen, const char *in);
+static size_t sql_escape_func(REQUEST *, char *out, size_t outlen, const char *in, void *arg);
 
 /*
  *                     SQL xlat function
@@ -403,7 +403,7 @@ static int generate_sql_clients(SQL_INST *inst)
 /*
  *     Translate the SQL queries.
  */
-static size_t sql_escape_func(char *out, size_t outlen, const char *in)
+static size_t sql_escape_func(UNUSED REQUEST *request, char *out, size_t outlen, const char *in, UNUSED void *arg)
 {
        size_t len = 0;
 
index ee140ff30b51a1d0a22cbdad4f7fbc743e9c464a..4255718e390fa87bf37c7c0116bf3a03604ce357 100644 (file)
@@ -106,7 +106,7 @@ struct sql_inst {
        int (*sql_set_user)(SQL_INST *inst, REQUEST *request, char *sqlusername, const char *username);
        SQLSOCK *(*sql_get_socket)(SQL_INST * inst);
        int (*sql_release_socket)(SQL_INST * inst, SQLSOCK * sqlsocket);
-       size_t (*sql_escape_func)(char *out, size_t outlen, const char *in);
+       size_t (*sql_escape_func)(REQUEST *, char *out, size_t outlen, const char *in, void *arg);
        int (*sql_query)(SQLSOCK **sqlsocket, SQL_INST *inst, char *query);
        int (*sql_select_query)(SQLSOCK **sqlsocket, SQL_INST *inst, char *query);
        int (*sql_fetch_row)(SQLSOCK **sqlsocket, SQL_INST *inst);
index cea2bb9b1e54de6faa38c8faea5db68a059eef7c..d35a8a6f46d30559e9aa3bbe6246fb8a4289f2e0 100644 (file)
@@ -151,7 +151,7 @@ static int sql_log_detach(void *instance)
 /*
  *     Translate the SQL queries.
  */
-static size_t sql_escape_func(char *out, size_t outlen, const char *in)
+static size_t sql_escape_func(UNUSED REQUEST *request, char *out, size_t outlen, const char *in, UNUSED void *arg)
 {
        int len = 0;
 
@@ -197,7 +197,7 @@ static size_t sql_escape_func(char *out, size_t outlen, const char *in)
        return len;
 }
 
-static size_t sql_utf8_escape_func(char *out, size_t outlen, const char *in)
+static size_t sql_utf8_escape_func(UNUSED REQUEST *request, char *out, size_t outlen, const char *in, UNUSED void *arg)
 {
        size_t len = 0;
        size_t utf8 = 0;
index 0664e60286d2f80fff7d030873525aeac555a574..52fe2be00ac5b38517459c4feb4dc11a42f9a447 100644 (file)
@@ -103,7 +103,7 @@ static char *allowed_chars = NULL;
 /*
  *     Translate the SQL queries.
  */
-static size_t sql_escape_func(char *out, size_t outlen, const char *in)
+static size_t sql_escape_func(UNUSED REQUEST *request, char *out, size_t outlen, const char *in, UNUSED void *arg)
 {
        int len = 0;
 
@@ -467,7 +467,7 @@ static int sqlcounter_instantiate(CONF_SECTION *conf, void **instance)
                sqlcounter_detach(data);
                return -1;
        }
-       sql_escape_func(buffer, sizeof(buffer), data->key_name);
+       sql_escape_func(NULL, buffer, sizeof(buffer), data->key_name, NULL);
        if (strcmp(buffer, data->key_name) != 0) {
                radlog(L_ERR, "rlm_sqlcounter: The value for option 'key' is too long or contains unsafe characters.");
                sqlcounter_detach(data);
@@ -501,7 +501,7 @@ static int sqlcounter_instantiate(CONF_SECTION *conf, void **instance)
                sqlcounter_detach(data);
                return -1;
        }
-       sql_escape_func(buffer, sizeof(buffer), data->sqlmod_inst);
+       sql_escape_func(NULL, buffer, sizeof(buffer), data->sqlmod_inst, NULL);
        if (strcmp(buffer, data->sqlmod_inst) != 0) {
                radlog(L_ERR, "rlm_sqlcounter: The value for option 'sqlmod-inst' is too long or contains unsafe characters.");
                sqlcounter_detach(data);