[SCM] Samba Shared Repository - branch v3-2-test updated -
release-3-2-0pre2-3528-gf4e68b0
Derrell Lipman
derrell at samba.org
Fri Mar 27 22:04:31 GMT 2009
The branch, v3-2-test has been updated
via f4e68b09a6ba30d968bccfad8bf6b67b4456b111 (commit)
from 52fe104996439db24a7e6b17baa7fec47ba230bb (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test
- Log -----------------------------------------------------------------
commit f4e68b09a6ba30d968bccfad8bf6b67b4456b111
Author: Derrell Lipman <derrell at dworkin.(none)>
Date: Fri Mar 27 17:10:04 2009 -0400
[Bug 6228] SMBC_open_ctx failure due to path resolve failure doesn't set errno
Fixed.
It turns out there were a number of places where cli_resolve_path() was called
and the error path upon that function failing did not set errno. There were a
couple of places the failure handling code did set errno to ENOENT, so I made
them all consistent, although I think better errno choices for this condition
exist, e.g. EHOSTUNREACH.
Derrell
-----------------------------------------------------------------------
Summary of changes:
source/libsmb/libsmb_dir.c | 8 +++++++-
source/libsmb/libsmb_file.c | 7 +++++++
source/libsmb/libsmb_stat.c | 1 +
3 files changed, 15 insertions(+), 1 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source/libsmb/libsmb_dir.c b/source/libsmb/libsmb_dir.c
index b0762e8..8ce660a 100644
--- a/source/libsmb/libsmb_dir.c
+++ b/source/libsmb/libsmb_dir.c
@@ -1168,7 +1168,8 @@ SMBC_mkdir_ctx(SMBCCTX *context,
if (!cli_resolve_path(frame, "", srv->cli, path,
&targetcli, &targetpath)) {
d_printf("Could not resolve %s\n", path);
- TALLOC_FREE(frame);
+ errno = ENOENT;
+ TALLOC_FREE(frame);
return -1;
}
/*d_printf(">>>mkdir: resolved path as %s\n", targetpath);*/
@@ -1275,6 +1276,7 @@ SMBC_rmdir_ctx(SMBCCTX *context,
if (!cli_resolve_path(frame, "", srv->cli, path,
&targetcli, &targetpath)) {
d_printf("Could not resolve %s\n", path);
+ errno = ENOENT;
TALLOC_FREE(frame);
return -1;
}
@@ -1738,6 +1740,8 @@ SMBC_unlink_ctx(SMBCCTX *context,
if (!cli_resolve_path(frame, "", srv->cli, path,
&targetcli, &targetpath)) {
d_printf("Could not resolve %s\n", path);
+ errno = ENOENT;
+ errno = ENOENT;
TALLOC_FREE(frame);
return -1;
}
@@ -1904,6 +1908,7 @@ SMBC_rename_ctx(SMBCCTX *ocontext,
if (!cli_resolve_path(frame, "", srv->cli, path1,
&targetcli1, &targetpath1)) {
d_printf("Could not resolve %s\n", path1);
+ errno = ENOENT;
TALLOC_FREE(frame);
return -1;
}
@@ -1912,6 +1917,7 @@ SMBC_rename_ctx(SMBCCTX *ocontext,
if (!cli_resolve_path(frame, "", srv->cli, path2,
&targetcli2, &targetpath2)) {
d_printf("Could not resolve %s\n", path2);
+ errno = ENOENT;
TALLOC_FREE(frame);
return -1;
}
diff --git a/source/libsmb/libsmb_file.c b/source/libsmb/libsmb_file.c
index 27b7e4f..a8c2629 100644
--- a/source/libsmb/libsmb_file.c
+++ b/source/libsmb/libsmb_file.c
@@ -118,6 +118,7 @@ SMBC_open_ctx(SMBCCTX *context,
if (!cli_resolve_path(frame, "", srv->cli, path,
&targetcli, &targetpath)) {
d_printf("Could not resolve %s\n", path);
+ errno = ENOENT;
SAFE_FREE(file);
TALLOC_FREE(frame);
return NULL;
@@ -298,6 +299,7 @@ SMBC_read_ctx(SMBCCTX *context,
if (!cli_resolve_path(frame, "", file->srv->cli, path,
&targetcli, &targetpath)) {
d_printf("Could not resolve %s\n", path);
+ errno = ENOENT;
TALLOC_FREE(frame);
return -1;
}
@@ -387,6 +389,7 @@ SMBC_write_ctx(SMBCCTX *context,
if (!cli_resolve_path(frame, "", file->srv->cli, path,
&targetcli, &targetpath)) {
d_printf("Could not resolve %s\n", path);
+ errno = ENOENT;
TALLOC_FREE(frame);
return -1;
}
@@ -462,6 +465,7 @@ SMBC_close_ctx(SMBCCTX *context,
if (!cli_resolve_path(frame, "", file->srv->cli, path,
&targetcli, &targetpath)) {
d_printf("Could not resolve %s\n", path);
+ errno = ENOENT;
TALLOC_FREE(frame);
return -1;
}
@@ -544,6 +548,7 @@ SMBC_getatr(SMBCCTX * context,
if (!cli_resolve_path(frame, "", srv->cli, fixedpath,
&targetcli, &targetpath)) {
d_printf("Couldn't resolve %s\n", path);
+ errno = ENOENT;
TALLOC_FREE(frame);
return False;
}
@@ -756,6 +761,7 @@ SMBC_lseek_ctx(SMBCCTX *context,
if (!cli_resolve_path(frame, "", file->srv->cli, path,
&targetcli, &targetpath)) {
d_printf("Could not resolve %s\n", path);
+ errno = ENOENT;
TALLOC_FREE(frame);
return -1;
}
@@ -847,6 +853,7 @@ SMBC_ftruncate_ctx(SMBCCTX *context,
if (!cli_resolve_path(frame, "", file->srv->cli, path,
&targetcli, &targetpath)) {
d_printf("Could not resolve %s\n", path);
+ errno = ENOENT;
TALLOC_FREE(frame);
return -1;
}
diff --git a/source/libsmb/libsmb_stat.c b/source/libsmb/libsmb_stat.c
index 27546f6..2aa4cff 100644
--- a/source/libsmb/libsmb_stat.c
+++ b/source/libsmb/libsmb_stat.c
@@ -260,6 +260,7 @@ SMBC_fstat_ctx(SMBCCTX *context,
if (!cli_resolve_path(frame, "", file->srv->cli, path,
&targetcli, &targetpath)) {
d_printf("Could not resolve %s\n", path);
+ errno = ENOENT;
TALLOC_FREE(frame);
return -1;
}
--
Samba Shared Repository
More information about the samba-cvs
mailing list