From 2e6c879e99f6d3436161f7b7dd676a3a5d0c0868 Mon Sep 17 00:00:00 2001 From: "G. Paul Ziemba" Date: Fri, 18 Aug 2023 11:13:20 -0700 Subject: [PATCH] pbrd: address 230815 coverity: pbr_vty.c pend/strtoul Signed-off-by: G. Paul Ziemba --- pbrd/pbr_vty.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pbrd/pbr_vty.c b/pbrd/pbr_vty.c index 0d6e1afd5b..9643fb955a 100644 --- a/pbrd/pbr_vty.c +++ b/pbrd/pbr_vty.c @@ -441,18 +441,18 @@ DEFPY (pbr_map_match_dscp, } unsigned long ul_dscp; - char *pend; + char *pend = NULL; uint8_t raw_dscp; assert(dscp); - ul_dscp = strtol(dscp, &pend, 0); - if (*pend) + ul_dscp = strtoul(dscp, &pend, 0); + if (pend && *pend) raw_dscp = pbr_map_decode_dscp_enum(dscp); else raw_dscp = ul_dscp << 2; if (raw_dscp > PBR_DSFIELD_DSCP) { vty_out(vty, "Invalid dscp value: %s%s\n", dscp, - (pend ? "" : " (numeric value must be in range 0-63)")); + ((pend && *pend) ? "" : " (numeric value must be in range 0-63)")); return CMD_WARNING_CONFIG_FAILED; } @@ -859,19 +859,19 @@ DEFPY (pbr_map_action_dscp, } unsigned long ul_dscp; - char *pend; + char *pend = NULL; uint8_t raw_dscp; assert(dscp); - ul_dscp = strtol(dscp, &pend, 0); - if (*pend) + ul_dscp = strtoul(dscp, &pend, 0); + if (pend && *pend) raw_dscp = pbr_map_decode_dscp_enum(dscp); else raw_dscp = ul_dscp << 2; if (raw_dscp > PBR_DSFIELD_DSCP) { vty_out(vty, "Invalid dscp value: %s%s\n", dscp, - (pend ? "" : " (numeric value must be in range 0-63)")); + ((pend && *pend) ? "" : " (numeric value must be in range 0-63)")); return CMD_WARNING_CONFIG_FAILED; } if (CHECK_FLAG(pbrms->action_bm, PBR_ACTION_DSCP) &&