s4-dsdb: don't add zero GUID to BINARY_DN
authorAndrew Tridgell <tridge@samba.org>
Wed, 22 Jun 2011 01:56:40 +0000 (11:56 +1000)
committerAndrew Tridgell <tridge@samba.org>
Wed, 22 Jun 2011 04:47:07 +0000 (14:47 +1000)
When converting from DRS to ldb format for a BINARY_DN, don't add the
GUID extended DN element if the GUID is all zeros.

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>

source4/dsdb/schema/schema_syntax.c

index 75dc16252b5c41ca512ce9a47fdc5f5552714e0a..f542f670f1b1513829e5b6abdf4d379a6b37cd23 100644 (file)
@@ -1983,16 +1983,18 @@ static WERROR dsdb_syntax_DN_BINARY_drsuapi_to_ldb(const struct dsdb_syntax_ctx
                        W_ERROR_HAVE_NO_MEMORY(dn);
                }
 
-               status = GUID_to_ndr_blob(&id3.guid, tmp_ctx, &guid_blob);
-               if (!NT_STATUS_IS_OK(status)) {
-                       talloc_free(tmp_ctx);
-                       return ntstatus_to_werror(status);
-               }
+               if (!GUID_all_zero(&id3.guid)) {
+                       status = GUID_to_ndr_blob(&id3.guid, tmp_ctx, &guid_blob);
+                       if (!NT_STATUS_IS_OK(status)) {
+                               talloc_free(tmp_ctx);
+                               return ntstatus_to_werror(status);
+                       }
 
-               ret = ldb_dn_set_extended_component(dn, "GUID", &guid_blob);
-               if (ret != LDB_SUCCESS) {
-                       talloc_free(tmp_ctx);
-                       return WERR_FOOBAR;
+                       ret = ldb_dn_set_extended_component(dn, "GUID", &guid_blob);
+                       if (ret != LDB_SUCCESS) {
+                               talloc_free(tmp_ctx);
+                               return WERR_FOOBAR;
+                       }
                }
 
                talloc_free(guid_blob.data);