diff --git a/SOURCES/openvswitch-2.17.0.patch b/SOURCES/openvswitch-2.17.0.patch
index 57f33d5..9ca8b02 100644
--- a/SOURCES/openvswitch-2.17.0.patch
+++ b/SOURCES/openvswitch-2.17.0.patch
@@ -51656,7 +51656,7 @@ index d344514343..1afcc65adb 100644
      }
  
 diff --git a/lib/dpctl.c b/lib/dpctl.c
-index 29041fa3e3..742fbce2d9 100644
+index 29041fa3e3..0fc053e061 100644
 --- a/lib/dpctl.c
 +++ b/lib/dpctl.c
 @@ -1727,26 +1727,23 @@ dpctl_flush_conntrack(int argc, const char *argv[],
@@ -51693,6 +51693,25 @@ index 29041fa3e3..742fbce2d9 100644
      ds_destroy(&ds);
      dpif_close(dpif);
      return error;
+@@ -2177,7 +2174,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 {
+@@ -2185,7 +2182,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;
 diff --git a/lib/dpif-netdev-avx512.c b/lib/dpif-netdev-avx512.c
 index b7131ba3f1..82a4138184 100644
 --- a/lib/dpif-netdev-avx512.c
@@ -64147,6 +64166,31 @@ index 00e3a46b8b..b6155af253 100644
  [1], [])
  
  AT_CLEANUP
+diff --git a/tests/dpctl.at b/tests/dpctl.at
+index 7454a51ec6..d2f1046f8b 100644
+--- a/tests/dpctl.at
++++ b/tests/dpctl.at
+@@ -135,3 +135,19 @@ AT_CHECK([ovs-appctl dpctl/dump-flows dummy@br0 | sort], [0], [dnl
+ AT_CHECK([ovs-appctl dpctl/del-dp dummy@br0])
+ OVS_VSWITCHD_STOP
+ AT_CLEANUP
++
++AT_SETUP([dpctl - ct-get-limits ct-del-limits])
++OVS_VSWITCHD_START
++AT_CHECK([ovs-appctl dpctl/ct-get-limits], [0], [default limit=0
++])
++AT_CHECK([ovs-appctl dpctl/ct-get-limits zone=], [0], [default limit=0
++])
++AT_CHECK([ovs-appctl dpctl/ct-get-limits zone=,], [0], [default limit=0
++])
++AT_CHECK([ovs-appctl dpctl/ct-get-limits zone=x], [2], [],
++  [ovs-vswitchd: invalid zone (Invalid argument)
++ovs-appctl: ovs-vswitchd: server returned an error
++])
++AT_CHECK([ovs-appctl dpctl/ct-del-limits zone=])
++OVS_VSWITCHD_STOP
++AT_CLEANUP
+\ No newline at end of file
 diff --git a/tests/dpif-netdev.at b/tests/dpif-netdev.at
 index a79ebdb618..9af70a68d7 100644
 --- a/tests/dpif-netdev.at
diff --git a/SPECS/openvswitch2.17.spec b/SPECS/openvswitch2.17.spec
index 8c6d57c..50f67fa 100644
--- a/SPECS/openvswitch2.17.spec
+++ b/SPECS/openvswitch2.17.spec
@@ -63,7 +63,7 @@ Summary: Open vSwitch
 Group: System Environment/Daemons daemon/database/utilities
 URL: http://www.openvswitch.org/
 Version: 2.17.0
-Release: 97%{?dist}
+Release: 98%{?dist}
 
 # Nearly all of openvswitch is ASL 2.0.  The bugtool is LGPLv2+, and the
 # lib/sflow*.[ch] files are SISSL
@@ -749,6 +749,12 @@ exit 0
 %endif
 
 %changelog
+* Thu May 11 2023 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-98
+- Merging upstream branch-2.17 [RH git: f55726ca97]
+    Commit list:
+    51d804aa4f dpctl: Fix dereferencing null pointer in parse_ct_limit_zones().
+
+
 * Wed May 10 2023 Open vSwitch CI <ovs-ci@redhat.com> - 2.17.0-97
 - Merging upstream branch-2.17 [RH git: 2fe36c053b]
     Commit list: