From 684ade53a2ed77a1ee12577208e75a95ccec3fc3 Mon Sep 17 00:00:00 2001 From: Linus Nordberg Date: Tue, 25 May 2010 22:55:04 +0200 Subject: * radsecproxy.c (extractattr): Bug! When s is changed, update len. This might actually work now! --- radsecproxy.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'radsecproxy.c') 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; -- cgit v1.1