summaryrefslogtreecommitdiff
path: root/source3/smbd/reply.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2005-06-22 21:20:41 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 10:57:59 -0500
commit7e509e9b99a18495bde01a990e37de70bae35aac (patch)
tree36cb4800a573693b66ec270baf9c5d609fa4801c /source3/smbd/reply.c
parentbc8954c4fce89992eb31bcb88e27728859aa7132 (diff)
downloadsamba-7e509e9b99a18495bde01a990e37de70bae35aac.tar.gz
samba-7e509e9b99a18495bde01a990e37de70bae35aac.tar.bz2
samba-7e509e9b99a18495bde01a990e37de70bae35aac.zip
r7842: With the patch I sent Steve yesterday this gives us complete POSIX pathnames.
ie. files containing : and \ can be accessed from Linux. Jeremy. (This used to be commit e9b8d23d6138d909a65ea70b2e801881e8333b38)
Diffstat (limited to 'source3/smbd/reply.c')
-rw-r--r--source3/smbd/reply.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c
index d49823bea5..99e0d5d9a1 100644
--- a/source3/smbd/reply.c
+++ b/source3/smbd/reply.c
@@ -398,7 +398,9 @@ size_t srvstr_get_path(char *inbuf, char *dest, const char *src, size_t dest_len
} else {
ret = srvstr_pull( inbuf, tmppath_ptr, src, dest_len, src_len, flags);
}
- if (allow_wcard_names) {
+ if (lp_posix_pathnames()) {
+ *err = check_path_syntax_posix(dest, tmppath);
+ } else if (allow_wcard_names) {
*err = check_path_syntax_wcard(dest, tmppath);
} else {
*err = check_path_syntax(dest, tmppath);
@@ -1032,6 +1034,10 @@ int reply_search(connection_struct *conn, char *inbuf,char *outbuf, int dum_size
NTSTATUS nt_status;
BOOL allow_long_path_components = (SVAL(inbuf,smb_flg2) & FLAGS2_LONG_PATH_COMPONENTS) ? True : False;
+ if (lp_posix_pathnames()) {
+ return reply_unknown(inbuf, outbuf);
+ }
+
START_PROFILE(SMBsearch);
*mask = *directory = *fname = 0;
@@ -1228,6 +1234,10 @@ int reply_fclose(connection_struct *conn, char *inbuf,char *outbuf, int dum_size
char *p;
NTSTATUS err;
+ if (lp_posix_pathnames()) {
+ return reply_unknown(inbuf, outbuf);
+ }
+
START_PROFILE(SMBfclose);
outsize = set_message(outbuf,1,0,True);