[SCM] Samba Shared Repository - branch v3-4-test updated - release-4-0-0alpha7-876-g10c009c

Günther Deschner gd at samba.org
Tue May 5 19:25:32 GMT 2009


The branch, v3-4-test has been updated
       via  10c009cec59358ec11a9d25242fe395f31f671a6 (commit)
       via  079c52a2c39ca2723402e7c6e2f8fd5825c2c40f (commit)
       via  14734deb6aacb592af5ddbbc93397ea79fe0d9bc (commit)
       via  d9233f534e9087cf6b35db5b72aefdd396b772e0 (commit)
      from  a79ae4e5364fe8e3ec6b451364dc5d861f202528 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-4-test


- Log -----------------------------------------------------------------
commit 10c009cec59358ec11a9d25242fe395f31f671a6
Author: Günther Deschner <gd at samba.org>
Date:   Tue May 5 21:12:33 2009 +0200

    s3-ldap: fix more callers of smbldap_dn_talloc() that were passing a NULL context.
    
    Guenther
    (cherry picked from commit fee4c99be494b9679c414d6ba1938aa88adeacd3)

commit 079c52a2c39ca2723402e7c6e2f8fd5825c2c40f
Author: Günther Deschner <gd at samba.org>
Date:   Tue May 5 18:50:48 2009 +0200

    s3-ldapsam: Fix Bug #6313: ldapsam_update_sam_account() crashes while doing talloc_free on malloced memory.
    
    Guenther
    (cherry picked from commit 5b37df21f6af52d20ad3a25361b1d7faa51308d1)

commit 14734deb6aacb592af5ddbbc93397ea79fe0d9bc
Author: Günther Deschner <gd at samba.org>
Date:   Tue May 5 19:38:58 2009 +0200

    error-codes: add some more group specific windows error codes.
    
    Guenther
    (cherry picked from commit e7a8577df1e92982ff717a62280f86e3b0384d54)

commit d9233f534e9087cf6b35db5b72aefdd396b772e0
Author: Günther Deschner <gd at samba.org>
Date:   Fri May 1 02:17:23 2009 +0200

    s3-printing: Fix driver upload for Xerox 4110 PS printer driver.
    
    We need to allow to set filesystem capabilities from the default vfs in
    create_conn_struct() in order to find mixed-case filenames. Thanks Volker!
    
    This one was hard to find, so a little longer explanation:
    
    When a Windows client tries to upload e.g. the Xerox 4110 PS driver, the client
    first uploads the driver files to the [print$] share. Some of them (in this case
    the Windows Postscript drivers) are with uppercase filenames while some of them
    (like the PPD file) are in lowercase. After the driver upload the client issues
    the spoolss_AddPrinterDriverEx() call with level 6. There the client tries to
    add the PPD file with an uppercase filename (while having stored it in lowercase
    on the server). The internal spoolss add driver functions then could not find the
    appropriate filename while trying to move them to the version subdirectory (in
    this case W32X86/3) and fails then entire spoolss_AddPrinterDriverEx() call.
    With this fix, the convert_unix_name() name finds the correct file and
    the spoolss_AddPrinterDriverEx() succeeds.
    
    Guenther
    (cherry picked from commit fe839b65a7b4e8d5e085287b7d33ee1f970fe7c2)

-----------------------------------------------------------------------

Summary of changes:
 libcli/util/doserr.c      |    4 ++++
 libcli/util/werror.h      |    2 ++
 source3/passdb/pdb_ldap.c |    4 ++--
 source3/passdb/pdb_nds.c  |    2 +-
 source3/smbd/msdfs.c      |    2 ++
 5 files changed, 11 insertions(+), 3 deletions(-)


Changeset truncated at 500 lines:

diff --git a/libcli/util/doserr.c b/libcli/util/doserr.c
index 1151d32..a7a132f 100644
--- a/libcli/util/doserr.c
+++ b/libcli/util/doserr.c
@@ -79,6 +79,7 @@ static const struct werror_code_struct dos_errs[] =
 	{ "WERR_USER_ALREADY_EXISTS", WERR_USER_ALREADY_EXISTS },
 	{ "WERR_NO_SUCH_USER", WERR_NO_SUCH_USER },
 	{ "WERR_GROUP_EXISTS", WERR_GROUP_EXISTS },
+	{ "WERR_NO_SUCH_GROUP", WERR_NO_SUCH_GROUP },
 	{ "WERR_MEMBER_IN_GROUP", WERR_MEMBER_IN_GROUP },
 	{ "WERR_USER_NOT_IN_GROUP", WERR_USER_NOT_IN_GROUP },
 	{ "WERR_PRINTER_DRIVER_IN_USE", WERR_PRINTER_DRIVER_IN_USE },
@@ -96,6 +97,7 @@ static const struct werror_code_struct dos_errs[] =
 	{ "WERR_UNKNOWN_REVISION", WERR_UNKNOWN_REVISION },
 	{ "WERR_REVISION_MISMATCH", WERR_REVISION_MISMATCH },
 	{ "WERR_INVALID_OWNER", WERR_INVALID_OWNER },
+	{ "WERR_INVALID_PRIMARY_GROUP", WERR_INVALID_PRIMARY_GROUP },
 	{ "WERR_INVALID_COMPUTERNAME", WERR_INVALID_COMPUTERNAME },
 	{ "WERR_INVALID_DOMAINNAME", WERR_INVALID_DOMAINNAME },
 	{ "WERR_MACHINE_LOCKED", WERR_MACHINE_LOCKED },
@@ -232,6 +234,8 @@ const struct werror_str_struct dos_err_strs[] = {
 	{ WERR_NONE_MAPPED, "Could not map names to SIDs" },
 	{ WERR_NO_SUCH_USER, "No such User" },
 	{ WERR_GROUP_EXISTS, "Group already exists" },
+	{ WERR_NO_SUCH_GROUP, "No such Group" },
+	{ WERR_INVALID_PRIMARY_GROUP, "The account's primary group is invalid" },
 	{ WERR_DS_DRA_BAD_DN, "An invalid distinguished name was specified for this replication" },
 	{ WERR_DS_DRA_BAD_NC, "An invalid naming context was specified for this replication operation" },
 	{ WERR_WRONG_PASSWORD, "The current password is incorrect" }
diff --git a/libcli/util/werror.h b/libcli/util/werror.h
index 2e6b696..2976390 100644
--- a/libcli/util/werror.h
+++ b/libcli/util/werror.h
@@ -126,6 +126,7 @@ typedef uint32_t WERROR;
 #define WERR_MACHINE_LOCKED W_ERROR(1271)
 #define WERR_REVISION_MISMATCH W_ERROR(1306)
 #define WERR_INVALID_OWNER W_ERROR(1307)
+#define WERR_INVALID_PRIMARY_GROUP W_ERROR(1308)
 #define WERR_NO_LOGON_SERVERS W_ERROR(1311)
 #define WERR_NO_SUCH_LOGON_SESSION W_ERROR(1312)
 #define WERR_NO_SUCH_PRIVILEGE W_ERROR(1313)
@@ -133,6 +134,7 @@ typedef uint32_t WERROR;
 #define WERR_USER_ALREADY_EXISTS W_ERROR(1316)
 #define WERR_NO_SUCH_USER W_ERROR(1317)
 #define WERR_GROUP_EXISTS W_ERROR(1318)
+#define WERR_NO_SUCH_GROUP W_ERROR(1319)
 #define WERR_MEMBER_IN_GROUP W_ERROR(1320)
 #define WERR_USER_NOT_IN_GROUP W_ERROR(1321)
 #define WERR_WRONG_PASSWORD W_ERROR(1323)
diff --git a/source3/passdb/pdb_ldap.c b/source3/passdb/pdb_ldap.c
index b706721..6217028 100644
--- a/source3/passdb/pdb_ldap.c
+++ b/source3/passdb/pdb_ldap.c
@@ -1908,7 +1908,7 @@ static NTSTATUS ldapsam_update_sam_account(struct pdb_methods *my_methods, struc
 	}
 
 	entry = ldap_first_entry(ldap_state->smbldap_state->ldap_struct, result);
-	dn = smbldap_talloc_dn(NULL, ldap_state->smbldap_state->ldap_struct, entry);
+	dn = smbldap_talloc_dn(talloc_tos(), ldap_state->smbldap_state->ldap_struct, entry);
 	if (!dn) {
 		return NT_STATUS_UNSUCCESSFUL;
 	}
@@ -3512,7 +3512,7 @@ static NTSTATUS ldapsam_modify_aliasmem(struct pdb_methods *methods,
 		return NT_STATUS_UNSUCCESSFUL;
 	}
 
-	dn = smbldap_talloc_dn(NULL, ldap_state->smbldap_state->ldap_struct, entry);
+	dn = smbldap_talloc_dn(talloc_tos(), ldap_state->smbldap_state->ldap_struct, entry);
 	if (!dn) {
 		ldap_msgfree(result);
 		return NT_STATUS_UNSUCCESSFUL;
diff --git a/source3/passdb/pdb_nds.c b/source3/passdb/pdb_nds.c
index 08665e4..1545b45 100644
--- a/source3/passdb/pdb_nds.c
+++ b/source3/passdb/pdb_nds.c
@@ -788,7 +788,7 @@ static NTSTATUS pdb_nds_update_login_attempts(struct pdb_methods *methods,
 		}
 
 		entry = ldap_first_entry(ldap_state->smbldap_state->ldap_struct, result);
-		dn = smbldap_talloc_dn(NULL, ldap_state->smbldap_state->ldap_struct, entry);
+		dn = smbldap_talloc_dn(talloc_tos(), ldap_state->smbldap_state->ldap_struct, entry);
 		if (!dn) {
 			return NT_STATUS_OBJECT_NAME_NOT_FOUND;
 		}
diff --git a/source3/smbd/msdfs.c b/source3/smbd/msdfs.c
index 4d692cd..7bd32e8 100644
--- a/source3/smbd/msdfs.c
+++ b/source3/smbd/msdfs.c
@@ -272,6 +272,8 @@ NTSTATUS create_conn_struct(TALLOC_CTX *ctx,
 		return status;
 	}
 
+	conn->fs_capabilities = SMB_VFS_FS_CAPABILITIES(conn);
+
 	/*
 	 * Windows seems to insist on doing trans2getdfsreferral() calls on
 	 * the IPC$ share as the anonymous user. If we try to chdir as that


-- 
Samba Shared Repository


More information about the samba-cvs mailing list