Alan DeKok wrote:
> Arran Cudbard-Bell wrote:
> ...
>> rlm_attr_rewrite: Changed value for attribute Calling-Station-Id from 
>> '00-17-f2-31-b4-81' to '0017f231b48'
>>
>> Seems to be missing last char of value...
> 
>   Try the attached patch.
> 
>   Alan DeKok.
> --
>   http://deployingradius.com       - The web site of the book
>   http://deployingradius.com/blog/ - The blog
> 
> 
> ------------------------------------------------------------------------
> 
> Index: src/modules/rlm_attr_rewrite/rlm_attr_rewrite.c
> ===================================================================
> RCS file: /source/radiusd/src/modules/rlm_attr_rewrite/rlm_attr_rewrite.c,v
> retrieving revision 1.43
> diff -u -r1.43 rlm_attr_rewrite.c
> --- src/modules/rlm_attr_rewrite/rlm_attr_rewrite.c   17 Apr 2007 13:14:50 
> -0000      1.43
> +++ src/modules/rlm_attr_rewrite/rlm_attr_rewrite.c   8 May 2007 13:26:26 
> -0000
> @@ -285,9 +285,9 @@
>               
>               if ((attr_vp->type == PW_TYPE_IPADDR) &&
>                   (attr_vp->vp_strvalue[0] == '\0')) {
> -               inet_ntop(AF_INET, &(attr_vp->vp_ipaddr),
> -                         attr_vp->vp_strvalue,
> -                         sizeof(attr_vp->vp_strvalue));
> +                     inet_ntop(AF_INET, &(attr_vp->vp_ipaddr),
> +                               attr_vp->vp_strvalue,
> +                               sizeof(attr_vp->vp_strvalue));
>               }
>  
>               ptr = new_str;
> @@ -325,8 +325,9 @@
>                               return ret;
>                       }
>  
> -                     strlcpy(ptr, ptr2,len);
> +                     memcpy(ptr, ptr2,len);
>                       ptr += len;
> +                     *ptr = '\0';
>                       ptr2 += pmatch[0].rm_eo;
>  
>                       if (i == 0){
> @@ -380,8 +381,9 @@
>                               return ret;
>                       }
>                       if (replace_len){
> -                             strlcpy(ptr, replace_STR, replace_len);
> +                             memcpy(ptr, replace_STR, replace_len);
>                               ptr += replace_len;
> +                             *ptr = '\0';
>                       }
>               }
>               regfree(&preg);
> @@ -392,7 +394,8 @@
>                                       data->attribute, attr_vp->vp_strvalue);
>                       return ret;
>               }
> -             strlcpy(ptr, ptr2, len);
> +             memcpy(ptr, ptr2, len);
> +             ptr[len] = '\0';
>  
>               DEBUG2("rlm_attr_rewrite: Changed value for attribute %s from 
> '%s' to '%s'",
>                               data->attribute, attr_vp->vp_strvalue, new_str);
> 
> 
> ------------------------------------------------------------------------
> 
> - 
> List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

radius_xlat: 
'([0-9a-f]{2})[-:]?([0-9a-f]{2})[-:]?([0-9a-f]{2})[-:]?([0-9a-f]{2,})[-:]?([0-9a-f]{2})[-:]?([0-9a-f]{2})'
radius_xlat:  '0019e30ccd58'
rlm_attr_rewrite: Changed value for attribute Calling-Station-Id from 
'00-19-e3-0c-cd-58' to '0019e30ccd58'

Works !

Thanks,
-- 
Arran Cudbard-Bell ([EMAIL PROTECTED])
Authentication, Authorisation and Accounting Officer
Infrastructure Services | ENG1 E1-1-08
University Of Sussex, Brighton
EXT:01273 873900 | INT: 3900
- 
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to