[SCM] Samba Shared Repository - branch v3-2-test updated - release-3-2-0pre2-2809-gd891d05

Jeremy Allison jra at samba.org
Tue Aug 12 21:11:25 GMT 2008


The branch, v3-2-test has been updated
       via  d891d0563974ba7d91752b8b15712eb79cf4e387 (commit)
       via  736bdf15d934028b579a02dc411aed6c14a437f3 (commit)
       via  06304f3c5f538c75bfc63c7abc1457d2b4dc0f0b (commit)
      from  39d7dab19ad7aa97ef8691cd3704ab976510aa78 (commit)

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


- Log -----------------------------------------------------------------
commit d891d0563974ba7d91752b8b15712eb79cf4e387
Merge: 736bdf15d934028b579a02dc411aed6c14a437f3 39d7dab19ad7aa97ef8691cd3704ab976510aa78
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Aug 12 14:10:52 2008 -0700

    Merge branch 'v3-2-test' of ssh://jra@git.samba.org/data/git/samba into v3-2-test

commit 736bdf15d934028b579a02dc411aed6c14a437f3
Author: Michael Adam <obnox at samba.org>
Date:   Tue Aug 12 14:59:59 2008 +0200

    Fix unix_convert() for "*" after changing map_nt_error_from_unix().
    
    map_nt_error_from_unix() now assumes that it is called in
    an error path and returns an error even for a given errno == 0.
    The original behaviour of unix_convert() used the mapping
    of errno == 0 ==> NT_STATUS_OK to return success through
    an error path.
    
    I think this must have been an oversight, and unix_convert() worked
    only by coincidence (or because explicitly using the knowledge
    of the conceptually wrong working of map_nt_error_from_unix().
    
    This patch puts this straight by not interpreting errno == 0
    as an error condition and proceeding in that case.
    
    Jeremy - please check!
    
    Michael

commit 06304f3c5f538c75bfc63c7abc1457d2b4dc0f0b
Author: Michael Adam <obnox at samba.org>
Date:   Tue Aug 12 15:19:17 2008 +0200

    Make sure to always set errno on error path in OpenDir (and hence scan_directory).
    
    Michael

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

Summary of changes:
 source/smbd/dir.c      |    1 +
 source/smbd/filename.c |    2 +-
 2 files changed, 2 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/smbd/dir.c b/source/smbd/dir.c
index 6e02401..604db98 100644
--- a/source/smbd/dir.c
+++ b/source/smbd/dir.c
@@ -1152,6 +1152,7 @@ struct smb_Dir *OpenDir(TALLOC_CTX *mem_ctx, connection_struct *conn,
 
 	dirp->dir_path = talloc_strdup(dirp, name);
 	if (!dirp->dir_path) {
+		errno = ENOMEM;
 		goto fail;
 	}
 
diff --git a/source/smbd/filename.c b/source/smbd/filename.c
index 4323e84..41a0b92 100644
--- a/source/smbd/filename.c
+++ b/source/smbd/filename.c
@@ -477,7 +477,7 @@ NTSTATUS unix_convert(TALLOC_CTX *ctx,
 				}
 
 				/* ENOENT is the only valid error here. */
-				if (errno != ENOENT) {
+				if ((errno != 0) && (errno != ENOENT)) {
 					/*
 					 * ENOTDIR and ELOOP both map to
 					 * NT_STATUS_OBJECT_PATH_NOT_FOUND


-- 
Samba Shared Repository


More information about the samba-cvs mailing list