hoist check to outside of switch statement
authorAlan T. DeKok <aland@freeradius.org>
Wed, 4 Jan 2017 22:06:28 +0000 (17:06 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 4 Jan 2017 22:06:28 +0000 (17:06 -0500)
src/main/map.c

index 714c3d2..9b8264b 100644 (file)
@@ -1386,7 +1386,7 @@ int map_to_request(REQUEST *request, vp_map_t const *map, radius_map_getvalue_t
                                 *      the RHS.
                                 */
                                cmp = (value_data_cmp_op(map->op, a->da->type, &a->data, a->vp_length, b->da->type, &b->data, b->vp_length) == 0);
-                               switch (map->op) {
+                               if (cmp == 1) switch (map->op) {
 
                                        /*
                                         *      Keep only matching attributes.
@@ -1396,8 +1396,6 @@ int map_to_request(REQUEST *request, vp_map_t const *map, radius_map_getvalue_t
                                case T_OP_NE:
                                case T_OP_REG_EQ:
                                case T_OP_CMP_EQ:
-                                       if (cmp == 0) break;
-
                                        a = fr_cursor_remove(&dst_list);
                                        talloc_free(a);
                                        break;
@@ -1411,8 +1409,6 @@ int map_to_request(REQUEST *request, vp_map_t const *map, radius_map_getvalue_t
                                case T_OP_GT:
                                case T_OP_LE:
                                case T_OP_LT:
-                                       if (cmp == 0) break;
-
                                        DEBUG_OVERWRITE(a, b);
                                        (void) value_data_copy(a, &a->data, a->da->type,
                                                               &b->data, b->vp_length);