summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/libsmbclient/testread.c1
-rw-r--r--source3/libsmb/libsmbclient.c10
2 files changed, 10 insertions, 1 deletions
diff --git a/examples/libsmbclient/testread.c b/examples/libsmbclient/testread.c
index 1f1219ca84..d59fc70ec1 100644
--- a/examples/libsmbclient/testread.c
+++ b/examples/libsmbclient/testread.c
@@ -55,6 +55,7 @@ int main(int argc, char * argv[])
{
ret = smbc_read(fd, buffer, sizeof(buffer));
savedErrno = errno;
+ if (ret > 0) fwrite(buffer, 1, ret, stdout);
} while (ret > 0);
smbc_close(fd);
diff --git a/source3/libsmb/libsmbclient.c b/source3/libsmb/libsmbclient.c
index 101cc02211..95a9da8487 100644
--- a/source3/libsmb/libsmbclient.c
+++ b/source3/libsmb/libsmbclient.c
@@ -414,7 +414,15 @@ smbc_parse_path(SMBCCTX *context,
}
- safe_strcpy(path, p, path_len - 1);
+ /*
+ * Prepend a leading slash if there's a file path, as required by
+ * NetApp filers.
+ */
+ *path = '\0';
+ if (*p != '\0') {
+ *path = '/';
+ safe_strcpy(path + 1, p, path_len - 2);
+ }
all_string_sub(path, "/", "\\", 0);