[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