diff options
-rw-r--r-- | source3/smbd/reply.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index eb97382750..bef1b15084 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -288,12 +288,22 @@ int reply_tcon_and_X(connection_struct *conn, char *inbuf,char *outbuf,int lengt passlen = strlen(password); } - q = strchr_m(path+2,'\\'); - if (!q) { - END_PROFILE(SMBtconX); - return(ERROR(ERRDOS,ERRnosuchshare)); + + /* + * the service name can be either: \\server\share + * or share directly like on the DELL PowerVault 705 + */ + if (*path=='\\') { + q = strchr_m(path+2,'\\'); + if (!q) { + END_PROFILE(SMBtconX); + return(ERROR(ERRDOS,ERRnosuchshare)); + } + fstrcpy(service,q+1); } - fstrcpy(service,q+1); + else + fstrcpy(service,path); + q = strchr_m(service,'%'); if (q) { *q++ = 0; |