]> git.puffer.fish Git - matthieu/frr.git/commitdiff
*: fix non-const northbound XPath format strings
authorDavid Lamparter <equinox@opensourcerouting.org>
Thu, 26 Jan 2023 13:56:04 +0000 (14:56 +0100)
committerDavid Lamparter <equinox@opensourcerouting.org>
Fri, 27 Jan 2023 11:01:20 +0000 (12:01 +0100)
Passing a pre-formatted buffer in these places needs a `"%s"` in front
so it doesn't get formatted twice.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
isisd/isis_cli.c
lib/filter_cli.c
lib/filter_nb.c
lib/if.c
lib/vrf.c
pathd/path_nb.c
pimd/pim_cmd.c
pimd/pim_cmd_common.c
staticd/static_vty.c

index 3650984f1bb749fba6c803cafe0e37645e7abb4e..cb607deb23424162865cab9e11e8ab33c3d50638 100644 (file)
@@ -61,7 +61,7 @@ DEFPY_YANG_NOSH(router_isis, router_isis_cmd,
                 vrf_name);
        nb_cli_enqueue_change(vty, ".", NB_OP_CREATE, NULL);
 
-       ret = nb_cli_apply_changes(vty, base_xpath);
+       ret = nb_cli_apply_changes(vty, "%s", base_xpath);
        if (ret == CMD_SUCCESS)
                VTY_PUSH_XPATH(ISIS_NODE, base_xpath);
 
@@ -1427,7 +1427,7 @@ DEFPY_YANG(
                                      overload ? "true" : "false");
        }
 
-       return nb_cli_apply_changes(vty, base_xpath);
+       return nb_cli_apply_changes(vty, "%s", base_xpath);
 }
 
 void cli_show_isis_mt_ipv4_multicast(struct vty *vty,
index 296c05b9f48890f739d1e25be731991f429038ba..5accea3f02378fbd55f0106b71df02c8f0ad4873 100644 (file)
@@ -206,7 +206,7 @@ DEFPY_YANG(
                nb_cli_enqueue_change(vty, "./source-any", NB_OP_CREATE, NULL);
        }
 
-       return nb_cli_apply_changes(vty, xpath_entry);
+       return nb_cli_apply_changes(vty, "%s", xpath_entry);
 }
 
 DEFPY_YANG(
@@ -369,7 +369,7 @@ DEFPY_YANG(
                                      NULL);
        }
 
-       return nb_cli_apply_changes(vty, xpath_entry);
+       return nb_cli_apply_changes(vty, "%s", xpath_entry);
 }
 
 DEFPY_YANG(
@@ -519,7 +519,7 @@ DEFPY_YANG(
                nb_cli_enqueue_change(vty, "./any", NB_OP_CREATE, NULL);
        }
 
-       return nb_cli_apply_changes(vty, xpath_entry);
+       return nb_cli_apply_changes(vty, "%s", xpath_entry);
 }
 
 DEFPY_YANG(
@@ -600,7 +600,7 @@ DEFPY_YANG(
 
        remark = argv_concat(argv, argc, 3);
        nb_cli_enqueue_change(vty, "./remark", NB_OP_CREATE, remark);
-       rv = nb_cli_apply_changes(vty, xpath);
+       rv = nb_cli_apply_changes(vty, "%s", xpath);
        XFREE(MTYPE_TMP, remark);
 
        return rv;
@@ -709,7 +709,7 @@ DEFPY_YANG(
                nb_cli_enqueue_change(vty, "./any", NB_OP_CREATE, NULL);
        }
 
-       return nb_cli_apply_changes(vty, xpath_entry);
+       return nb_cli_apply_changes(vty, "%s", xpath_entry);
 }
 
 DEFPY_YANG(
@@ -793,7 +793,7 @@ DEFPY_YANG(
 
        remark = argv_concat(argv, argc, 4);
        nb_cli_enqueue_change(vty, "./remark", NB_OP_CREATE, remark);
-       rv = nb_cli_apply_changes(vty, xpath);
+       rv = nb_cli_apply_changes(vty, "%s", xpath);
        XFREE(MTYPE_TMP, remark);
 
        return rv;
@@ -896,7 +896,7 @@ DEFPY_YANG(
                nb_cli_enqueue_change(vty, "./any", NB_OP_CREATE, NULL);
        }
 
-       return nb_cli_apply_changes(vty, xpath_entry);
+       return nb_cli_apply_changes(vty, "%s", xpath_entry);
 }
 
 DEFPY_YANG(
@@ -975,7 +975,7 @@ DEFPY_YANG(
 
        remark = argv_concat(argv, argc, 4);
        nb_cli_enqueue_change(vty, "./remark", NB_OP_CREATE, remark);
-       rv = nb_cli_apply_changes(vty, xpath);
+       rv = nb_cli_apply_changes(vty, "%s", xpath);
        XFREE(MTYPE_TMP, remark);
 
        return rv;
@@ -1344,7 +1344,7 @@ DEFPY_YANG(
                nb_cli_enqueue_change(vty, "./any", NB_OP_CREATE, NULL);
        }
 
-       return nb_cli_apply_changes(vty, xpath_entry);
+       return nb_cli_apply_changes(vty, "%s", xpath_entry);
 }
 
 DEFPY_YANG(
@@ -1415,7 +1415,7 @@ DEFPY_YANG(
 
        remark = argv_concat(argv, argc, 4);
        nb_cli_enqueue_change(vty, "./remark", NB_OP_CREATE, remark);
-       rv = nb_cli_apply_changes(vty, xpath);
+       rv = nb_cli_apply_changes(vty, "%s", xpath);
        XFREE(MTYPE_TMP, remark);
 
        return rv;
@@ -1548,7 +1548,7 @@ DEFPY_YANG(
                nb_cli_enqueue_change(vty, "./any", NB_OP_CREATE, NULL);
        }
 
-       return nb_cli_apply_changes(vty, xpath_entry);
+       return nb_cli_apply_changes(vty, "%s", xpath_entry);
 }
 
 DEFPY_YANG(
@@ -1619,7 +1619,7 @@ DEFPY_YANG(
 
        remark = argv_concat(argv, argc, 4);
        nb_cli_enqueue_change(vty, "./remark", NB_OP_CREATE, remark);
-       rv = nb_cli_apply_changes(vty, xpath);
+       rv = nb_cli_apply_changes(vty, "%s", xpath);
        XFREE(MTYPE_TMP, remark);
 
        return rv;
index 3ed1f3e03e96dc6737150d4799d6114e3e5e9a88..cfe3105380ed41a125e2a679d28c741f732cb361 100644 (file)
@@ -70,7 +70,7 @@ static enum nb_error prefix_list_length_validate(struct nb_cb_modify_args *args)
         * prefix length <= le.
         */
        if (yang_dnode_exists(args->dnode, xpath_le)) {
-               le = yang_dnode_get_uint8(args->dnode, xpath_le);
+               le = yang_dnode_get_uint8(args->dnode, "%s", xpath_le);
                if (p.prefixlen > le)
                        goto log_and_fail;
        }
@@ -80,7 +80,7 @@ static enum nb_error prefix_list_length_validate(struct nb_cb_modify_args *args)
         * prefix length <= ge.
         */
        if (yang_dnode_exists(args->dnode, xpath_ge)) {
-               ge = yang_dnode_get_uint8(args->dnode, xpath_ge);
+               ge = yang_dnode_get_uint8(args->dnode, "%s", xpath_ge);
                if (p.prefixlen > ge)
                        goto log_and_fail;
        }
@@ -91,8 +91,8 @@ static enum nb_error prefix_list_length_validate(struct nb_cb_modify_args *args)
         */
        if (yang_dnode_exists(args->dnode, xpath_le)
            && yang_dnode_exists(args->dnode, xpath_ge)) {
-               le = yang_dnode_get_uint8(args->dnode, xpath_le);
-               ge = yang_dnode_get_uint8(args->dnode, xpath_ge);
+               le = yang_dnode_get_uint8(args->dnode, "%s", xpath_le);
+               ge = yang_dnode_get_uint8(args->dnode, "%s", xpath_ge);
                if (ge > le)
                        goto log_and_fail;
        }
@@ -273,7 +273,8 @@ static int _acl_is_dup(const struct lyd_node *dnode, void *arg)
                        return YANG_ITER_CONTINUE;
 
                /* Check if different value. */
-               if (strcmp(yang_dnode_get_string(dnode, ada->ada_xpath[idx]),
+               if (strcmp(yang_dnode_get_string(dnode, "%s",
+                                                ada->ada_xpath[idx]),
                           ada->ada_value[idx]))
                        return YANG_ITER_CONTINUE;
        }
@@ -328,8 +329,8 @@ static bool acl_cisco_is_dup(const struct lyd_node *dnode)
                }
 
                ada.ada_xpath[arg_idx] = cisco_entries[idx];
-               ada.ada_value[arg_idx] =
-                       yang_dnode_get_string(entry_dnode, cisco_entries[idx]);
+               ada.ada_value[arg_idx] = yang_dnode_get_string(
+                       entry_dnode, "%s", cisco_entries[idx]);
                arg_idx++;
                idx++;
        }
@@ -378,8 +379,8 @@ static bool acl_zebra_is_dup(const struct lyd_node *dnode,
                }
 
                ada.ada_xpath[arg_idx] = zebra_entries[idx];
-               ada.ada_value[arg_idx] =
-                       yang_dnode_get_string(entry_dnode, zebra_entries[idx]);
+               ada.ada_value[arg_idx] = yang_dnode_get_string(
+                       entry_dnode, "%s", zebra_entries[idx]);
                arg_idx++;
                idx++;
        }
index db7321003644beca5d895ad8afa79c2f07cdd8da..b75c2a4dbe5578e795396ccb921765244edf15bc 100644 (file)
--- a/lib/if.c
+++ b/lib/if.c
@@ -1220,7 +1220,7 @@ DEFPY_YANG_NOSH (interface,
        }
 
        nb_cli_enqueue_change(vty, ".", NB_OP_CREATE, NULL);
-       ret = nb_cli_apply_changes_clear_pending(vty, xpath_list);
+       ret = nb_cli_apply_changes_clear_pending(vty, "%s", xpath_list);
        if (ret == CMD_SUCCESS) {
                VTY_PUSH_XPATH(INTERFACE_NODE, xpath_list);
 
@@ -1279,7 +1279,7 @@ DEFPY_YANG (no_interface,
 
        nb_cli_enqueue_change(vty, ".", NB_OP_DESTROY, NULL);
 
-       return nb_cli_apply_changes(vty, xpath_list);
+       return nb_cli_apply_changes(vty, "%s", xpath_list);
 }
 
 static void netns_ifname_split(const char *xpath, char *ifname, char *vrfname)
index 2ac7ef7a970cb0dcdb3ba90b0e35c332cbad2e58..7d2ca6f1e1e7f6a4d87eb0e330af50f31c742f48 100644 (file)
--- a/lib/vrf.c
+++ b/lib/vrf.c
@@ -652,7 +652,7 @@ DEFUN_YANG_NOSH (vrf,
        snprintf(xpath_list, sizeof(xpath_list), FRR_VRF_KEY_XPATH, vrfname);
 
        nb_cli_enqueue_change(vty, xpath_list, NB_OP_CREATE, NULL);
-       ret = nb_cli_apply_changes_clear_pending(vty, xpath_list);
+       ret = nb_cli_apply_changes_clear_pending(vty, "%s", xpath_list);
        if (ret == CMD_SUCCESS) {
                VTY_PUSH_XPATH(VRF_NODE, xpath_list);
                vrf = vrf_lookup_by_name(vrfname);
index 1ab8b7f39bc494597c17f07c50c26f527e410ea9..137e64d12ca6ff65b5f47c733620ca9a69b36b74 100644 (file)
@@ -310,7 +310,7 @@ void iter_objfun_prefs(const struct lyd_node *dnode, const char* path,
        struct of_cb_args args = {0};
        struct of_cb_pref *p;
 
-       yang_dnode_iterate(iter_objfun_cb, &args, dnode, path);
+       yang_dnode_iterate(iter_objfun_cb, &args, dnode, "%s", path);
        for (p = args.first; p != NULL; p = p->next)
                fun(p->type, arg);
 }
index 306891c0e0ea4133ad73a7fb3495adc3b8c44de1..d73ec2990d8bbb6f753bfa76938b672907b7c197 100644 (file)
@@ -4777,14 +4777,11 @@ DEFPY(ip_msdp_timers, ip_msdp_timers_cmd,
       "Connection retry period (in seconds)\n")
 {
        const char *vrfname;
-       char xpath[XPATH_MAXLEN];
 
        vrfname = pim_cli_get_vrf_name(vty);
        if (vrfname == NULL)
                return CMD_WARNING_CONFIG_FAILED;
 
-       snprintf(xpath, sizeof(xpath), FRR_PIM_MSDP_XPATH, "frr-pim:pimd",
-                "pim", vrfname, "frr-routing:ipv4");
        nb_cli_enqueue_change(vty, "./hold-time", NB_OP_MODIFY, holdtime_str);
        nb_cli_enqueue_change(vty, "./keep-alive", NB_OP_MODIFY, keepalive_str);
        if (connretry_str)
@@ -4794,8 +4791,8 @@ DEFPY(ip_msdp_timers, ip_msdp_timers_cmd,
                nb_cli_enqueue_change(vty, "./connection-retry", NB_OP_DESTROY,
                                      NULL);
 
-       nb_cli_apply_changes(vty, xpath);
-
+       nb_cli_apply_changes(vty, FRR_PIM_MSDP_XPATH, "frr-pim:pimd", "pim",
+                            vrfname, "frr-routing:ipv4");
        return CMD_SUCCESS;
 }
 
@@ -4810,20 +4807,17 @@ DEFPY(no_ip_msdp_timers, no_ip_msdp_timers_cmd,
       IGNORED_IN_NO_STR)
 {
        const char *vrfname;
-       char xpath[XPATH_MAXLEN];
 
        vrfname = pim_cli_get_vrf_name(vty);
        if (vrfname == NULL)
                return CMD_WARNING_CONFIG_FAILED;
 
-       snprintf(xpath, sizeof(xpath), FRR_PIM_MSDP_XPATH, "frr-pim:pimd",
-                "pim", vrfname, "frr-routing:ipv4");
-
        nb_cli_enqueue_change(vty, "./hold-time", NB_OP_DESTROY, NULL);
        nb_cli_enqueue_change(vty, "./keep-alive", NB_OP_DESTROY, NULL);
        nb_cli_enqueue_change(vty, "./connection-retry", NB_OP_DESTROY, NULL);
 
-       nb_cli_apply_changes(vty, xpath);
+       nb_cli_apply_changes(vty, FRR_PIM_MSDP_XPATH, "frr-pim:pimd", "pim",
+                            vrfname, "frr-routing:ipv4");
 
        return CMD_SUCCESS;
 }
index 28e4c488f389c745b65c1cb8a20fba6b6a6c9d43..d220ae082f5c0b0645039a0105a3000b641cbb23 100644 (file)
@@ -299,7 +299,7 @@ int pim_process_no_rp_kat_cmd(struct vty *vty)
                sizeof(rs_timer_xpath));
 
        /* RFC4601 */
-       v = yang_dnode_get_uint16(vty->candidate_config->dnode,
+       v = yang_dnode_get_uint16(vty->candidate_config->dnode, "%s",
                                  rs_timer_xpath);
        v = 3 * v + PIM_REGISTER_PROBE_TIME_DEFAULT;
        if (v > UINT16_MAX)
@@ -688,7 +688,7 @@ int pim_process_no_rp_plist_cmd(struct vty *vty, const char *rp_str,
                return NB_OK;
        }
 
-       plist = yang_dnode_get_string(plist_dnode, plist_xpath);
+       plist = yang_dnode_get_string(plist_dnode, "%s", plist_xpath);
        if (strcmp(prefix_list, plist)) {
                vty_out(vty, "%% Unable to find specified RP\n");
                return NB_OK;
index ff79622038d26c64cbf3bf2471444947c1d98407..c5bea755ec19c1437c52ea297e2a64d88f57d1ad 100644 (file)
@@ -377,7 +377,7 @@ static int static_route_nb_run(struct vty *vty, struct static_route_args *args)
                        }
                }
 
-               ret = nb_cli_apply_changes(vty, xpath_prefix);
+               ret = nb_cli_apply_changes(vty, "%s", xpath_prefix);
        } else {
                if (args->source)
                        snprintf(ab_xpath, sizeof(ab_xpath),
@@ -411,7 +411,7 @@ static int static_route_nb_run(struct vty *vty, struct static_route_args *args)
                yang_dnode_get_path(dnode, ab_xpath, XPATH_MAXLEN);
 
                nb_cli_enqueue_change(vty, ab_xpath, NB_OP_DESTROY, NULL);
-               ret = nb_cli_apply_changes(vty, ab_xpath);
+               ret = nb_cli_apply_changes(vty, "%s", ab_xpath);
        }
 
        return ret;