]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
CID 1506690
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Sun, 11 Dec 2022 21:16:53 +0000 (15:16 -0600)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Sun, 11 Dec 2022 21:16:53 +0000 (15:16 -0600)
src/lib/server/map.c
src/lib/server/tmpl_tokenize.c

index 07547093b8b547b793bc67ae83c28c5c6f6f74ca..0b48a858ab04c2acdf2c8f2249f6cdaabee81ade 100644 (file)
@@ -1251,7 +1251,6 @@ int map_afrom_vp(TALLOC_CTX *ctx, map_t **out, fr_pair_t *vp, tmpl_rules_t const
        tmpl_attr_set_list(map->lhs, rules->attr.list_def);
 
        tmpl_print(&FR_SBUFF_OUT(buffer, sizeof(buffer)), map->lhs, TMPL_ATTR_REF_PREFIX_YES, NULL);
-       /* coverity[uninit_use_in_call] */
        tmpl_set_name(map->lhs, T_BARE_WORD, buffer, -1);
 
        /*
index e93ca00cde67e7198385aca6cfc14a323f7ea337..efe0cd80833dc1bf98661b3b278dde22527478f1 100644 (file)
@@ -2227,7 +2227,7 @@ ssize_t tmpl_afrom_attr_substr(TALLOC_CTX *ctx, tmpl_attr_error_t *err,
                if (tmpl_attr_tail_is_normal(vpt) && (tmpl_attr_tail_da(vpt)->type == tmpl_rules_cast(vpt))) {
                        vpt->rules.cast = FR_TYPE_NULL;
                }
-               
+
                /*
                 *      Ensure that the list is set correctly, so that
                 *      the returned vpt just doesn't just match the
@@ -4570,6 +4570,7 @@ fr_slen_t tmpl_print(fr_sbuff_t *out, tmpl_t const *vpt,
        case TMPL_TYPE_UNINITIALISED:
        case TMPL_TYPE_NULL:
        case TMPL_TYPE_MAX:
+               fr_sbuff_terminate(&out);
                break;
 
        /*
@@ -4590,9 +4591,13 @@ fr_slen_t tmpl_print(fr_sbuff_t *out, tmpl_t const *vpt,
                        break;
                }
 
-               fr_assert_fail("Can't print invalid tmpl type %s",
-                              tmpl_type_to_str(vpt->type));
-               break;
+               fr_assert_fail("Can't print invalid tmpl type %s", tmpl_type_to_str(vpt->type));
+
+               /*
+                *      Ensure we do something sane for non-debug builds
+                */
+               fr_sbuff_terminate(&out);
+               return 0;
        }
 
        FR_SBUFF_SET_RETURN(out, &our_out);