]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
VP may be NULL
authorAlan T. DeKok <aland@freeradius.org>
Sat, 26 May 2012 08:32:58 +0000 (10:32 +0200)
committerAlan T. DeKok <aland@freeradius.org>
Sat, 26 May 2012 08:34:27 +0000 (10:34 +0200)
src/main/xlat.c

index 7f4932e90ef33f956456214760304a01db42e39f..0488fdae1cd50e45d54b23a14003d1b7e6f83e26 100644 (file)
@@ -115,11 +115,11 @@ static VALUE_PAIR *pairfind_tag(VALUE_PAIR *vps, const DICT_ATTR *da, int tag)
        VALUE_PAIR *vp = vps;
 
 redo:
-       if (!vp) return NULL;
-
        vp = pairfind(vp, da->attr, da->vendor);
        if (!tag) return vp;
 
+       if (!vp) return NULL;
+
        if (!vp->flags.has_tag) return NULL;
 
        if (vp->flags.tag == tag) return vp;
@@ -332,6 +332,8 @@ static size_t xlat_packet(void *instance, REQUEST *request,
                 *      Non-existent array reference.
                 */
        just_print:
+               if (!vp) return 0;
+
                if (do_number) {
                        if ((vp->type != PW_TYPE_IPADDR) &&
                            (vp->type != PW_TYPE_INTEGER) &&
@@ -345,7 +347,6 @@ static size_t xlat_packet(void *instance, REQUEST *request,
                        return snprintf(out, outlen, "%u", vp->vp_integer);
                }
 
-               if (!vp) return 0;
                return valuepair2str(out, outlen, vp, da->type, func);
        }