s4-dsdb: treat uSNHighest as 0 if @REPLCHANGED doesn't exist
authorAndrew Tridgell <tridge@samba.org>
Wed, 16 Sep 2009 10:43:37 +0000 (03:43 -0700)
committerAndrew Tridgell <tridge@samba.org>
Wed, 16 Sep 2009 10:58:17 +0000 (03:58 -0700)
When a partition is first created it still needs a uSNHighest value

source4/dsdb/common/util.c

index c2636e127f2a4205ef3bc6040c38e96583157edb..633279ead11c28f4d1cb59c9985acdc5a3e234ff 100644 (file)
@@ -2311,6 +2311,14 @@ int dsdb_load_partition_usn(struct ldb_context *ldb, struct ldb_dn *dn, uint64_t
                ret = ldb_wait(req->handle, LDB_WAIT_ALL);
        }
 
+       if (ret == LDB_ERR_NO_SUCH_OBJECT) {
+               /* it hasn't been created yet, which means
+                  an implicit value of zero */
+               *uSN = 0;
+               talloc_free(tmp_ctx);
+               return LDB_SUCCESS;
+       }
+
        if (ret != LDB_SUCCESS) {
                talloc_free(tmp_ctx);
                return ret;