diff options
-rw-r--r-- | examples/libsmbclient/testread.c | 1 | ||||
-rw-r--r-- | source3/libsmb/libsmbclient.c | 10 |
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); |