diff options
| -rw-r--r-- | radsecproxy.c | 11 | 
1 files changed, 6 insertions, 5 deletions
| diff --git a/radsecproxy.c b/radsecproxy.c index ff9dbfe..4f79293 100644 --- a/radsecproxy.c +++ b/radsecproxy.c @@ -2335,19 +2335,20 @@ struct tlv *extractattr(char *nameval) {      struct tlv *a;      s = strchr(nameval, ':'); -    name = atoi(nameval);      if (!s)  	return NULL; -    len = strlen(s + 1); -    if (len > 253) -	return NULL; +    name = atoi(nameval); +    /* Two ':' means that we have vendor:name:val.  */      s2 = strchr(s + 1, ':'); -    if (s2) {		 /* Two ':' means we have vendor:name:val.  */ +    if (s2) {  	vendor = name;  	name = atoi(s + 1);  	s = s2;      } +    len = strlen(s + 1); +    if (len > 253) +	return NULL;      if (name < 1 || name > 255)  	return NULL; | 
