Be more careful about initialization in a loop
authorAlan T. DeKok <aland@freeradius.org>
Sun, 13 Oct 2013 02:04:15 +0000 (22:04 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Mon, 14 Oct 2013 20:12:31 +0000 (16:12 -0400)
src/lib/radius.c

index afa2a02..22d8672 100644 (file)
@@ -3102,6 +3102,7 @@ static ssize_t data2vp_extended(RADIUS_PACKET *packet,
        uint8_t const *frag, *end;
        uint8_t const *attr;
        int fragments;
+       bool last_frag;
 
        if (attrlen < 3) return -1;
 
@@ -3115,10 +3116,9 @@ static ssize_t data2vp_extended(RADIUS_PACKET *packet,
        frag = data + attrlen;
        end = data + packetlen;
        fragments = 0;
+       last_frag = false;
 
        while (frag < end) {
-               int last_frag = false;
-
                if (last_frag ||
                    (frag[0] != attr[0]) ||
                    (frag[1] < 4) ||                   /* too short for long-extended */
@@ -3177,6 +3177,7 @@ static ssize_t data2vp_wimax(RADIUS_PACKET *packet,
 {
        ssize_t rcode;
        size_t fraglen;
+       bool last_frag;
        uint8_t *head, *tail;
        uint8_t const *frag, *end;
        DICT_ATTR const *child;
@@ -3207,10 +3208,9 @@ static ssize_t data2vp_wimax(RADIUS_PACKET *packet,
        fraglen = data[5] - 3;
        frag = data + attrlen;
        end = data + packetlen;
+       last_frag = false;
 
        while (frag < end) {
-               int last_frag = false;
-
                if (last_frag ||
                    (frag[0] != PW_VENDOR_SPECIFIC) ||
                    (frag[1] < 9) ||                   /* too short for wimax */