From: Alan T. DeKok Date: Sat, 26 May 2012 08:32:58 +0000 (+0200) Subject: VP may be NULL X-Git-Tag: release_3_0_0_beta0~188 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c8ed41be6bc0dcf61e93f1757f658fe7dc393e45;p=thirdparty%2Ffreeradius-server.git VP may be NULL --- diff --git a/src/main/xlat.c b/src/main/xlat.c index 7f4932e90ef..0488fdae1cd 100644 --- a/src/main/xlat.c +++ b/src/main/xlat.c @@ -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); }