From bea154c9c13e2849eadcaccc1d5acccf9a3b8931 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Wed, 29 Mar 2023 06:20:01 -0400 Subject: [PATCH] lib: Fix tdb_validate() for incorrect tdb entries We should not overwrite the "rc=1" initialization with the tdb_check retval. This will lead to tdb_validate_child() returning 0 even when validate_fn() found invalid entries. Bug: https://bugzilla.samba.org/show_bug.cgi?id=14789 Signed-off-by: Volker Lendecke Reviewed-by: Andreas Schneider Reviewed-by: Jeremy Allison --- selftest/knownfail.d/tdb-validate | 1 - source3/lib/tdb_validate.c | 5 +++-- 2 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 selftest/knownfail.d/tdb-validate diff --git a/selftest/knownfail.d/tdb-validate b/selftest/knownfail.d/tdb-validate deleted file mode 100644 index bde5821433f..00000000000 --- a/selftest/knownfail.d/tdb-validate +++ /dev/null @@ -1 +0,0 @@ -samba3.smbtorture_s3.LOCAL-TDB-VALIDATE.smbtorture diff --git a/source3/lib/tdb_validate.c b/source3/lib/tdb_validate.c index 9db182fb0b3..78bd824c09d 100644 --- a/source3/lib/tdb_validate.c +++ b/source3/lib/tdb_validate.c @@ -31,6 +31,7 @@ static int tdb_validate_child(struct tdb_context *tdb, tdb_validate_data_func validate_fn) { int ret = 1; + int check_rc; int num_entries = 0; struct tdb_validation_status v_status; @@ -50,8 +51,8 @@ static int tdb_validate_child(struct tdb_context *tdb, * we can simplify this by passing a check function, * but I don't want to change all the callers... */ - ret = tdb_check(tdb, NULL, NULL); - if (ret != 0) { + check_rc = tdb_check(tdb, NULL, NULL); + if (check_rc != 0) { v_status.tdb_error = True; v_status.success = False; goto out;