Statically allocated datum objects should be properly initialized with
a special function instead of doing that manually.
WARNING: MemorySanitizer: use-of-uninitialized-value
0 0x58789c in ovsdb_datum_compare_3way lib/ovsdb-data.c:1846:19
1 0x52bbab in evaluate_relop lib/db-ctl-base.c:731:16
2 0x52b042 in check_condition lib/db-ctl-base.c:844:22
3 0x522fea in cmd_wait_until lib/db-ctl-base.c:1935:22
4 0x4c704b in do_vsctl utilities/ovs-vsctl.c:3001:13
5 0x4c4429 in main utilities/ovs-vsctl.c:204:17
6 0x7f5ad5 in __libc_start_call_main
7 0x7f5ad5 in __libc_start_main@GLIBC_2.2.5
8 0x432b04 in _start (utilities/ovs-vsctl+0x432b04)
In this case the reference counter ended up not initialized.
Fixes: 485ac63d10f8 ("ovsdb: Add lazy-copy support for ovsdb_datum objects.")
Signed-off-by: Ilya Maximets <[email protected]>
---
lib/db-ctl-base.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/lib/db-ctl-base.c b/lib/db-ctl-base.c
index b3e9b92d1..69b4f826c 100644
--- a/lib/db-ctl-base.c
+++ b/lib/db-ctl-base.c
@@ -831,14 +831,10 @@ check_condition(const struct ovsdb_idl_table_class *table,
} else {
struct ovsdb_datum a;
+ ovsdb_datum_init_empty(&a);
if (found) {
a.n = 1;
a.keys = &have_datum->values[idx];
- a.values = NULL;
- } else {
- a.n = 0;
- a.keys = NULL;
- a.values = NULL;
}
retval = evaluate_relop(&a, &b, &type, operator);
--
2.47.0
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev