s4:dsdb/password_hash: require a "Primary:Kerberos" blob in supplementalCredentials
authorStefan Metzmacher <metze@samba.org>
Mon, 16 Jan 2012 14:32:21 +0000 (15:32 +0100)
committerStefan Metzmacher <metze@samba.org>
Mon, 16 Jan 2012 16:10:07 +0000 (17:10 +0100)
If this is missing a w2k8r2 server will reboot, when someone tries to
change a password.

metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Mon Jan 16 17:10:07 CET 2012 on sn-devel-104

source4/dsdb/samdb/ldb_modules/password_hash.c

index bf94ba3dc328744f68443b5e0fac643cfa7c6f39..553cd686a4bb707eccac419bea9232cfc3f2541e 100644 (file)
@@ -301,6 +301,22 @@ static int password_hash_bypass(struct ldb_module *module, struct ldb_request *r
                        data_blob_free(&subblob);
                }
 
+               if (scpp == NULL) {
+                       return ldb_error(ldb,
+                                        LDB_ERR_CONSTRAINT_VIOLATION,
+                                        "Primary:Packages missing");
+               }
+
+               if (scpk == NULL) {
+                       /*
+                        * If Primary:Kerberos is missing w2k8r2 reboots
+                        * when a password is changed.
+                        */
+                       return ldb_error(ldb,
+                                        LDB_ERR_CONSTRAINT_VIOLATION,
+                                        "Primary:Kerberos missing");
+               }
+
                if (scpp) {
                        struct package_PackagesBlob *p;
                        uint32_t n;