summaryrefslogtreecommitdiffstats
path: root/fs/cifs/smb2pdu.h
diff options
context:
space:
mode:
authorRonnie Sahlberg <lsahlber@redhat.com>2019-07-09 10:41:11 +0200
committerSteve French <stfrench@microsoft.com>2019-07-10 23:15:45 +0200
commitdf070afd9b8c952eacf49db54cae7138eb9deaeb (patch)
tree537e6118629e984ee62764f450abe0bf66738f3b /fs/cifs/smb2pdu.h
parentcifs: refactor and clean up arguments in the reparse point parsing (diff)
downloadlinux-df070afd9b8c952eacf49db54cae7138eb9deaeb.tar.xz
linux-df070afd9b8c952eacf49db54cae7138eb9deaeb.zip
cifs: fix parsing of symbolic link error response
RHBZ: 1672539 In smb2_query_symlink(), if we are parsing the error buffer but it is not something we recognize as a symlink we should return -EINVAL and not -ENOENT. I.e. the entry does exist, it is just not something we recognize. Additionally, add check to verify that that the errortag and the reparsetag all make sense. Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com> Acked-by: Paulo Alcantara <palcantara@suse.de> Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/cifs/smb2pdu.h')
-rw-r--r--fs/cifs/smb2pdu.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/cifs/smb2pdu.h b/fs/cifs/smb2pdu.h
index 458bad01ca74..7e2e782f8edd 100644
--- a/fs/cifs/smb2pdu.h
+++ b/fs/cifs/smb2pdu.h
@@ -166,6 +166,8 @@ struct smb2_err_rsp {
__u8 ErrorData[1]; /* variable length */
} __packed;
+#define SYMLINK_ERROR_TAG 0x4c4d5953
+
struct smb2_symlink_err_rsp {
__le32 SymLinkLength;
__le32 SymLinkErrorTag;