[SCM] Samba Shared Repository - branch v4-16-test updated

Jule Anger janger at samba.org
Mon Feb 14 22:19:01 UTC 2022


The branch, v4-16-test has been updated
       via  1bbb3677ae5 smbd: Safeguards for getpwuid
      from  cdc5e9e4dbe smbd: Only file_free() a self-created fsp in create_file_unixpath()

https://git.samba.org/?p=samba.git;a=shortlog;h=v4-16-test


- Log -----------------------------------------------------------------
commit 1bbb3677ae5b95ea12bf9037b3a74725452382dc
Author: Volker Lendecke <vl at samba.org>
Date:   Thu Feb 3 13:20:11 2022 +0100

    smbd: Safeguards for getpwuid
    
    Attempt to fix
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=14900
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    (cherry picked from commit 929ccd3d1afb864ea715fa4d3d8af8f997e5d2aa)
    
    Autobuild-User(v4-16-test): Jule Anger <janger at samba.org>
    Autobuild-Date(v4-16-test): Mon Feb 14 22:18:31 UTC 2022 on sn-devel-184

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

Summary of changes:
 source3/passdb/pdb_interface.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/passdb/pdb_interface.c b/source3/passdb/pdb_interface.c
index 3c4499a4459..b83cef1de37 100644
--- a/source3/passdb/pdb_interface.c
+++ b/source3/passdb/pdb_interface.c
@@ -1402,6 +1402,7 @@ static bool pdb_default_uid_to_sid(struct pdb_methods *methods, uid_t uid,
 {
 	struct samu *sampw = NULL;
 	struct passwd *unix_pw;
+	fstring pw_name = { 0 };
 	bool ret;
 
 	unix_pw = getpwuid( uid );
@@ -1412,14 +1413,23 @@ static bool pdb_default_uid_to_sid(struct pdb_methods *methods, uid_t uid,
 		return False;
 	}
 
+	if (unix_pw->pw_name == NULL) {
+		DBG_DEBUG("No pw_name for uid %d\n", (int)uid);
+		return false;
+	}
+
+	/*
+	 * Make a copy, "unix_pw" might go away soon.
+	 */
+	fstrcpy(pw_name, unix_pw->pw_name);
+
 	if ( !(sampw = samu_new( NULL )) ) {
 		DEBUG(0,("pdb_default_uid_to_sid: samu_new() failed!\n"));
 		return False;
 	}
 
 	become_root();
-	ret = NT_STATUS_IS_OK(
-		methods->getsampwnam(methods, sampw, unix_pw->pw_name ));
+	ret = NT_STATUS_IS_OK(methods->getsampwnam(methods, sampw, pw_name));
 	unbecome_root();
 
 	if (!ret) {


-- 
Samba Shared Repository



More information about the samba-cvs mailing list