The branch, master has been updated
       via  763b2efe69d s3:utils: Fix setting the debug level
       via  e5fe856e76e s3:tests: Add smbget test for 
smb://DOAMIN;user%password@server/share/file
       via  40de9033650 pycredentials: Properly check type in 
creds.set_nt_hash() and samr.encrypt_samr_password()
      from  00034d02289 s3:auth: Allow 'Unix Users' and 'Unix Groups' to create 
a local token

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 763b2efe69dc74e1c0cd954607031012f832486d
Author: Andreas Schneider <a...@samba.org>
Date:   Wed Dec 6 08:48:34 2023 +0100

    s3:utils: Fix setting the debug level
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15525
    
    Signed-off-by: Andreas Schneider <a...@samba.org>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>
    
    Autobuild-User(master): Andrew Bartlett <abart...@samba.org>
    Autobuild-Date(master): Thu Dec  7 05:33:21 UTC 2023 on atb-devel-224

commit e5fe856e76eba26e3b85a391bcea02dfe045c26e
Author: Andreas Schneider <a...@samba.org>
Date:   Tue Dec 5 15:46:48 2023 +0100

    s3:tests: Add smbget test for smb://DOAMIN;user%password@server/share/file
    
    This is supported according to the smbget manpage!
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=15525
    
    Signed-off-by: Andreas Schneider <a...@samba.org>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 40de90336506233994a57cbde7a107e26ffe22bf
Author: Andrew Bartlett <abart...@samba.org>
Date:   Thu Dec 7 15:50:43 2023 +1300

    pycredentials: Properly check type in creds.set_nt_hash() and 
samr.encrypt_samr_password()
    
    We should not be just doing a talloc type check, we should check the python
    type first.
    
    Signed-off-by: Andrew Bartlett <abart...@samba.org>
    Reviewed-by: Joseph Sutton <josephsut...@catalyst.net.nz>

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

Summary of changes:
 auth/credentials/pycredentials.c    | 10 ++++++++++
 auth/credentials/wscript_build      |  3 ++-
 source3/script/tests/test_smbget.sh | 20 ++++++++++++++++++++
 source3/utils/smbget.c              |  6 +++++-
 4 files changed, 37 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/auth/credentials/pycredentials.c b/auth/credentials/pycredentials.c
index 8e7d8ae7b56..a27e02d1aa5 100644
--- a/auth/credentials/pycredentials.c
+++ b/auth/credentials/pycredentials.c
@@ -568,6 +568,11 @@ static PyObject *py_creds_set_nt_hash(PyObject *self, 
PyObject *args)
        }
        obt = _obt;
 
+       if (!py_check_dcerpc_type(py_cp, "samba.dcerpc.samr", "Password")) {
+               /* py_check_dcerpc_type sets TypeError */
+               return NULL;
+       }
+
        pwd = pytalloc_get_type(py_cp, struct samr_Password);
        if (pwd == NULL) {
                /* pytalloc_get_type sets TypeError */
@@ -1073,6 +1078,11 @@ static PyObject *py_creds_encrypt_samr_password(PyObject 
*self,
                return NULL;
        }
 
+       if (!py_check_dcerpc_type(py_cp, "samba.dcerpc.samr", "Password")) {
+               /* py_check_dcerpc_type sets TypeError */
+               return NULL;
+       }
+
        pwd = pytalloc_get_type(py_cp, struct samr_Password);
        if (pwd == NULL) {
                /* pytalloc_get_type sets TypeError */
diff --git a/auth/credentials/wscript_build b/auth/credentials/wscript_build
index 7568554df4d..83c6e8ca5a0 100644
--- a/auth/credentials/wscript_build
+++ b/auth/credentials/wscript_build
@@ -27,12 +27,13 @@ bld.SAMBA_SUBSYSTEM('CREDENTIALS_CMDLINE',
                     source='credentials_cmdline.c',
                     deps='samba-credentials')
 
+pyrpc_util = bld.pyembed_libname('pyrpc_util')
 pytalloc_util = bld.pyembed_libname('pytalloc-util')
 pyparam_util = bld.pyembed_libname('pyparam_util')
 
 bld.SAMBA_PYTHON('pycredentials',
     source='pycredentials.c',
-    public_deps='samba-credentials %s %s CREDENTIALS_CMDLINE CREDENTIALS_KRB5 
CREDENTIALS_SECRETS' % (pytalloc_util, pyparam_util),
+    public_deps='samba-credentials %s %s %s CREDENTIALS_CMDLINE 
CREDENTIALS_KRB5 CREDENTIALS_SECRETS' % (pyrpc_util, pytalloc_util, 
pyparam_util),
     realname='samba/credentials.so'
 )
 
diff --git a/source3/script/tests/test_smbget.sh 
b/source3/script/tests/test_smbget.sh
index 46c1f4a68a5..bdc62a71eff 100755
--- a/source3/script/tests/test_smbget.sh
+++ b/source3/script/tests/test_smbget.sh
@@ -145,6 +145,22 @@ test_singlefile_smburl()
        return 0
 }
 
+test_singlefile_smburl2()
+{
+       clear_download_area
+       $SMBGET "smb://$DOMAIN;$USERNAME:$PASSWORD@$SERVER_IP/smbget/testfile"
+       if [ $? -ne 0 ]; then
+               echo 'ERROR: RC does not match, expected: 0'
+               return 1
+       fi
+       cmp --silent $WORKDIR/testfile ./testfile
+       if [ $? -ne 0 ]; then
+               echo 'ERROR: file content does not match'
+               return 1
+       fi
+       return 0
+}
+
 test_singlefile_authfile()
 {
        clear_download_area
@@ -499,6 +515,10 @@ testit "download single file with --update and UPN" 
test_singlefile_U_UPN ||
 testit "download single file with smb URL" test_singlefile_smburl ||
        failed=$(expr $failed + 1)
 
+testit "download single file with smb URL including domain" \
+       test_singlefile_smburl2 ||
+       failed=$(expr $failed + 1)
+
 testit "download single file with authfile" test_singlefile_authfile ||
        failed=$(expr $failed + 1)
 
diff --git a/source3/utils/smbget.c b/source3/utils/smbget.c
index a43679328c1..dc8dace8a55 100644
--- a/source3/utils/smbget.c
+++ b/source3/utils/smbget.c
@@ -849,6 +849,7 @@ int main(int argc, char **argv)
        uint32_t gensec_features;
        bool use_wbccache = false;
        SMBCCTX *smb_ctx = NULL;
+       int dbg_lvl = -1;
        int rc;
 
        smb_init_locale();
@@ -922,13 +923,16 @@ int main(int argc, char **argv)
 
        samba_cmdline_burn(argc, argv);
 
+       /* smbc_new_context() will set the log level to 0 */
+       dbg_lvl = debuglevel_get();
+
        smb_ctx = smbc_new_context();
        if (smb_ctx == NULL) {
                fprintf(stderr, "Unable to initialize libsmbclient\n");
                ok = false;
                goto done;
        }
-       smbc_setDebug(smb_ctx, debuglevel_get());
+       smbc_setDebug(smb_ctx, dbg_lvl);
 
        rc = smbc_setConfiguration(smb_ctx, lp_default_path());
        if (rc < 0) {


-- 
Samba Shared Repository

Reply via email to