svn commit: samba r23130 - in branches/SAMBA_3_0_RELEASE: .
source/include source/libsmb
jerry at samba.org
jerry at samba.org
Fri May 25 04:02:26 GMT 2007
Author: jerry
Date: 2007-05-25 04:02:25 +0000 (Fri, 25 May 2007)
New Revision: 23130
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=23130
Log:
merge Derrell's change from SAMBA_3_0_25 svn r23120
Modified:
branches/SAMBA_3_0_RELEASE/WHATSNEW.txt
branches/SAMBA_3_0_RELEASE/source/include/nterr.h
branches/SAMBA_3_0_RELEASE/source/libsmb/clierror.c
branches/SAMBA_3_0_RELEASE/source/libsmb/clitrans.c
Changeset:
Modified: branches/SAMBA_3_0_RELEASE/WHATSNEW.txt
===================================================================
--- branches/SAMBA_3_0_RELEASE/WHATSNEW.txt 2007-05-24 23:38:46 UTC (rev 23129)
+++ branches/SAMBA_3_0_RELEASE/WHATSNEW.txt 2007-05-25 04:02:25 UTC (rev 23130)
@@ -98,8 +98,10 @@
* BUG 4599: Fix failure when setting attributes.
* BUG 4634: Type of the size parameter to getpeername in
libsmbclient code was wrong.
+ * Fix libsmbclient interaction with links on Vista and properly
+ detect non-NTSTATUS errors.
+
-
o Jim McDonough <jmcd at us.ibm.com>
* BUG 4630: Fix special case of unix_to_nt_time() for TIME_T_MAX
and the output from http_timestring().
Modified: branches/SAMBA_3_0_RELEASE/source/include/nterr.h
===================================================================
--- branches/SAMBA_3_0_RELEASE/source/include/nterr.h 2007-05-24 23:38:46 UTC (rev 23129)
+++ branches/SAMBA_3_0_RELEASE/source/include/nterr.h 2007-05-25 04:02:25 UTC (rev 23130)
@@ -30,6 +30,9 @@
#define STATUS_NO_MORE_FILES NT_STATUS(0x80000006)
#define NT_STATUS_NO_MORE_ENTRIES NT_STATUS(0x8000001a)
+/* Vista Status codes. */
+#define STATUS_INACCESSIBLE_SYSTEM_SHORTCUT NT_STATUS(0x8000002d)
+
#define STATUS_MORE_ENTRIES NT_STATUS(0x0105)
#define STATUS_SOME_UNMAPPED NT_STATUS(0x0107)
#define ERROR_INVALID_PARAMETER NT_STATUS(0x0057)
Modified: branches/SAMBA_3_0_RELEASE/source/libsmb/clierror.c
===================================================================
--- branches/SAMBA_3_0_RELEASE/source/libsmb/clierror.c 2007-05-24 23:38:46 UTC (rev 23129)
+++ branches/SAMBA_3_0_RELEASE/source/libsmb/clierror.c 2007-05-25 04:02:25 UTC (rev 23130)
@@ -380,6 +380,15 @@
return cli_errno_from_nt(status);
}
+ /*
+ * Yuck! A special case for this Vista error. Since its high-order
+ * byte isn't 0xc0, it doesn't match cli_is_nt_error() above.
+ */
+ status = cli_nt_error(cli);
+ if (NT_STATUS_V(status) == NT_STATUS_V(STATUS_INACCESSIBLE_SYSTEM_SHORTCUT)) {
+ return EACCES;
+ }
+
/* for other cases */
return EINVAL;
}
Modified: branches/SAMBA_3_0_RELEASE/source/libsmb/clitrans.c
===================================================================
--- branches/SAMBA_3_0_RELEASE/source/libsmb/clitrans.c 2007-05-24 23:38:46 UTC (rev 23129)
+++ branches/SAMBA_3_0_RELEASE/source/libsmb/clitrans.c 2007-05-25 04:02:25 UTC (rev 23130)
@@ -197,7 +197,9 @@
*/
status = cli_nt_error(cli);
- if (NT_STATUS_IS_ERR(status) || NT_STATUS_EQUAL(status,STATUS_NO_MORE_FILES)) {
+ if (NT_STATUS_IS_ERR(status) ||
+ NT_STATUS_EQUAL(status,STATUS_NO_MORE_FILES) ||
+ NT_STATUS_EQUAL(status,STATUS_INACCESSIBLE_SYSTEM_SHORTCUT)) {
goto out;
}
More information about the samba-cvs
mailing list