diff --git a/SOURCES/openvswitch-3.1.0.patch b/SOURCES/openvswitch-3.1.0.patch
index 44908c7..99cb675 100644
--- a/SOURCES/openvswitch-3.1.0.patch
+++ b/SOURCES/openvswitch-3.1.0.patch
@@ -1687,10 +1687,26 @@ index 0292f715e..fbbea4005 100644
      __cpuid_count(leaf, 0, regs[EAX], regs[EBX], regs[ECX], regs[EDX]);
      return (regs[reg] & ((uint32_t) 1 << bit)) != 0;
 diff --git a/lib/db-ctl-base.c b/lib/db-ctl-base.c
-index 134496ef3..5d2635946 100644
+index 134496ef3..3a8068b12 100644
 --- a/lib/db-ctl-base.c
 +++ b/lib/db-ctl-base.c
-@@ -1492,7 +1492,7 @@ cmd_add(struct ctl_context *ctx)
+@@ -820,6 +820,7 @@ check_condition(const struct ovsdb_idl_table_class *table,
+         type.value.type = OVSDB_TYPE_VOID;
+         error = ovsdb_datum_from_string(&b, &type, value_string, symtab);
+         if (error) {
++            ovsdb_atom_destroy(&want_key, column->type.key.type);
+             goto out;
+         }
+ 
+@@ -1374,6 +1375,7 @@ set_column(const struct ovsdb_idl_table_class *table,
+         error = ovsdb_atom_from_string(&value, NULL, &column->type.value,
+                                        value_string, symtab);
+         if (error) {
++            ovsdb_atom_destroy(&key, column->type.key.type);
+             goto out;
+         }
+ 
+@@ -1492,7 +1494,7 @@ cmd_add(struct ctl_context *ctx)
      const struct ovsdb_idl_column *column;
      const struct ovsdb_idl_row *row;
      const struct ovsdb_type *type;
@@ -1699,7 +1715,7 @@ index 134496ef3..5d2635946 100644
      int i;
  
      ctx->error = get_table(table_name, &table);
-@@ -1516,13 +1516,7 @@ cmd_add(struct ctl_context *ctx)
+@@ -1516,13 +1518,7 @@ cmd_add(struct ctl_context *ctx)
      }
  
      type = &column->type;
@@ -1714,7 +1730,7 @@ index 134496ef3..5d2635946 100644
      for (i = 4; i < ctx->argc; i++) {
          struct ovsdb_type add_type;
          struct ovsdb_datum add;
-@@ -1533,41 +1527,23 @@ cmd_add(struct ctl_context *ctx)
+@@ -1533,41 +1529,23 @@ cmd_add(struct ctl_context *ctx)
          ctx->error = ovsdb_datum_from_string(&add, &add_type, ctx->argv[i],
                                               ctx->symtab);
          if (ctx->error) {
diff --git a/SPECS/openvswitch3.1.spec b/SPECS/openvswitch3.1.spec
index ff4a2e6..f552ba6 100644
--- a/SPECS/openvswitch3.1.spec
+++ b/SPECS/openvswitch3.1.spec
@@ -57,7 +57,7 @@ Summary: Open vSwitch
 Group: System Environment/Daemons daemon/database/utilities
 URL: http://www.openvswitch.org/
 Version: 3.1.0
-Release: 59%{?dist}
+Release: 60%{?dist}
 
 # Nearly all of openvswitch is ASL 2.0.  The bugtool is LGPLv2+, and the
 # lib/sflow*.[ch] files are SISSL
@@ -754,6 +754,12 @@ exit 0
 %endif
 
 %changelog
+* Wed Oct 18 2023 Open vSwitch CI <ovs-ci@redhat.com> - 3.1.0-60
+- Merging upstream branch-3.1 [RH git: eca528248c]
+    Commit list:
+    1fa8722bf3 db-ctl-base: Fix memory leak of db commands.
+
+
 * Tue Oct 17 2023 Open vSwitch CI <ovs-ci@redhat.com> - 3.1.0-59
 - Merging upstream branch-3.1 [RH git: 577f88c045]
     Commit list: