]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
free vp after dereferencing it
authorAlan T. DeKok <aland@freeradius.org>
Fri, 25 Oct 2019 11:10:07 +0000 (07:10 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Fri, 25 Oct 2019 11:10:07 +0000 (07:10 -0400)
src/protocols/dhcpv6/decode.c
src/protocols/radius/decode.c

index 91035567c5eaab2f4fc1c1ea194c60e7b7f93f35..a699c6b3ba732edc485bbf8dce2c1aafae320142 100644 (file)
@@ -88,12 +88,11 @@ static ssize_t decode_pair_value(TALLOC_CTX *ctx, fr_cursor_t *cursor, UNUSED fr
                if (!vp) return -1;
 
                if (fr_value_box_from_network(vp, &vp->data, vp->da->type, vp->da, data, data_len, true) < 0) {
-                       fr_pair_list_free(&vp);
-
                        /*
                         *      Paranoid loop prevention
                         */
                        if (vp->da->flags.is_unknown) {
+                               fr_pair_list_free(&vp);
                                return -1;
                        }
                        goto raw;
index ea113b30303c0530a81069380712b94e1e355d5f..2b60d0dd141cdab9547aafa99737891409b5e5dc 100644 (file)
@@ -1433,12 +1433,11 @@ ssize_t fr_radius_decode_pair_value(TALLOC_CTX *ctx, fr_cursor_t *cursor, fr_dic
        case FR_TYPE_IFID:
        case FR_TYPE_SIZE:
                if (fr_value_box_from_network(vp, &vp->data, vp->da->type, vp->da, p, data_len, true) < 0) {
-                       fr_pair_list_free(&vp);
-
                        /*
                         *      Paranoid loop prevention
                         */
                        if (vp->da->flags.is_unknown) {
+                               fr_pair_list_free(&vp);
                                return -1;
                        }
                        goto raw;