]> 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:32:58 +0000 (10:32 +0200)
src/main/xlat.c

index 64a1d8d338b3f65fa35caba19af2b084bd02e8cb..37ec1a84bad934ad88c943d79b391f7ea67e87e0 100644 (file)
@@ -100,11 +100,11 @@ static VALUE_PAIR *pairfind_tag(VALUE_PAIR *vps, int attr, int tag)
        VALUE_PAIR *vp = vps;
 
 redo:
-       if (!vp) return NULL;
-
        vp = pairfind(vp, attr);
        if (!tag) return vp;
 
+       if (!vp) return NULL;
+
        if (!vp->flags.has_tag) return NULL;
 
        if (vp->flags.tag == tag) return vp;
@@ -317,6 +317,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) &&
@@ -330,7 +332,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);
        }