summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2019-10-15 15:04:39 -0700
committerJeremy Allison <jra@samba.org>2019-11-06 18:08:40 +0000
commitd8567d46bd7e371de83e4d1ee1592639eb6f0c06 (patch)
treee4050efe2ce97234551318ce653b1feacb561aa6
parent4b25299c0d00b23c22be1e2a4eed3be5572e623a (diff)
downloadsamba-d8567d46bd7e371de83e4d1ee1592639eb6f0c06.tar.gz
s3: smbd: SMB1 UNIX extensions - only allow size change on regular file.
Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Volker Lendecke <vl@samba.org>
-rw-r--r--source3/smbd/trans2.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index bcff091f0ea..59821baeddf 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -8301,14 +8301,16 @@ static NTSTATUS smb_set_file_unix_basic(connection_struct *conn,
/* Deal with any size changes. */
- status = smb_set_file_size(conn, req,
- fsp,
- smb_fname,
- &sbuf,
- size,
- false);
- if (!NT_STATUS_IS_OK(status)) {
- return status;
+ if (S_ISREG(sbuf.st_ex_mode)) {
+ status = smb_set_file_size(conn, req,
+ fsp,
+ smb_fname,
+ &sbuf,
+ size,
+ false);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
}
/* Deal with any time changes. */