summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorZhiqi Chen <chenzhiqi.123@bytedance.com>2023-05-10 16:35:37 +0800
committerIlya Maximets <i.maximets@ovn.org>2023-05-11 21:11:36 +0200
commitffb8b743bb7706f6b33d0b329d011bf163976652 (patch)
tree0b87fe9434ecd33da5333e3219504daed5b83157 /lib
parentcd608cf96eb93ebc4aa44d1393b9cb00bfde46e5 (diff)
downloadopenvswitch-ffb8b743bb7706f6b33d0b329d011bf163976652.tar.gz
dpctl: Fix dereferencing null pointer in parse_ct_limit_zones().
Command with empty string following "dpctl/ct-get-limits zone=" such as "ovs-appctl dpctl/ct-get-limits zone=" will cause parse_ct_limit_zones() dereferencing null. Signed-off-by: Zhiqi Chen <chenzhiqi.123@bytedance.com> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/dpctl.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/dpctl.c b/lib/dpctl.c
index 3ba40fa8f..15950bd50 100644
--- a/lib/dpctl.c
+++ b/lib/dpctl.c
@@ -2206,7 +2206,7 @@ parse_ct_limit_zones(const char *argv, struct ovs_list *zone_limits,
argcopy = xstrdup(argv + 5);
next_zone = strtok_r(argcopy, ",", &save_ptr);
- do {
+ while (next_zone != NULL) {
if (ovs_scan(next_zone, "%"SCNu16, &zone)) {
ct_dpif_push_zone_limit(zone_limits, zone, 0, 0);
} else {
@@ -2214,7 +2214,8 @@ parse_ct_limit_zones(const char *argv, struct ovs_list *zone_limits,
free(argcopy);
return EINVAL;
}
- } while ((next_zone = strtok_r(NULL, ",", &save_ptr)) != NULL);
+ next_zone = strtok_r(NULL, ",", &save_ptr);
+ }
free(argcopy);
return 0;