Freeradius not unescaping \ and "
    Alan DeKok 
    aland at deployingradius.com
       
    Tue Sep  7 12:37:19 CEST 2010
    
    
  
Murray Long wrote:
> When passing variables to the perl module,
> "void fr_print_string(const char *in, size_t inlen, char *out, size_t outlen)"
> Escapes all special characters (including '\')
  Yes.
> When variables are returned from perl,
> VALUE_PAIR *pairparsevalue(VALUE_PAIR *vp, const char *value)
> unescapes special characters, but ignores "\\"
  ? I'm not sure how you conclude that.  The code in the v2.1.x branch
handles escaping of '\\' for "string" attributes.  See pairparsevalue(),
the "while" loop:
   while (*cp && (length < (sizeof(vp->vp_strvalue) - 1))) {
	char c = *cp++;
	if (c == '\\') {
		switch (*cp) {
			...
			case '\'':
				c = '\'';
				cp++;
				break;
			...
> I've patched the pairparsevalue function to handle an escaped
> backslash, which has solved my problems.  However this is my first
> time looking at freeradius source, so have no idea what knock-on
> effects this will have, so please could someone review this for me.
  What code did you change?
  Alan DeKok.
    
    
More information about the Freeradius-Users
mailing list