All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Pali Rohár" <pali@kernel.org>
To: Steve French <sfrench@samba.org>,
	Paulo Alcantara <pc@manguebit.com>,
	Ronnie Sahlberg <ronniesahlberg@gmail.com>
Cc: linux-cifs@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH 0/8] cifs: Fix support for NFS-style reparse points
Date: Sat, 28 Sep 2024 23:59:40 +0200	[thread overview]
Message-ID: <20240928215948.4494-1-pali@kernel.org> (raw)

For NFS-style reparse points in the current Linux SMB client I found few
buffer overflows and then incompatibility issues related to char/block
devices and symlinks. In this patch series I'm addressing these issues.
I also located commits which introduced these issues, I put them into
Fixes lines of commit messages.

Test cases against Windows server which exports one directory over both
SMB and NFS protocols. On Linux is mounted that directory to /mnt/nfs
and /mnt/smb via different protocols.

  mknod /mnt/nfs/char c 1 3
  stat /mnt/smb/char
  mknod /mnt/nfs/block b 8 0
  stat /mnt/smb/block
  ln -s abc\\abc /mnt/nfs/symlink
  stat /mnt/smb/symlink
  ls -l /mnt/smb

ls -l or stat over SMB should show the same information about char, block
and symlink as over NFS. And vice-versa.

Please look and check the buffer overflow issue as these buffer lengths
are always nightmares to handle correctly.

Pali Rohár (8):
  smb: Update comments about some reparse point tags
  cifs: Remove intermediate object of failed create reparse call
  cifs: Fix parsing NFS-style char/block devices
  cifs: Fix creating NFS-style char/block devices
  cifs: Fix buffer overflow when parsing NFS reparse points
  cifs: Do not convert delimiter when parsing NFS-style symlinks
  cifs: Validate content of NFS reparse point buffer
  cifs: Rename posix to nfs in parse_reparse_posix() and
    reparse_posix_data

 fs/smb/client/cifsglob.h  |  2 +-
 fs/smb/client/cifspdu.h   |  2 +-
 fs/smb/client/reparse.c   | 53 +++++++++++++++++++++++++++++++--------
 fs/smb/client/reparse.h   | 12 ++++++---
 fs/smb/client/smb2inode.c | 21 ++++++++++++++--
 fs/smb/common/smb2pdu.h   |  2 +-
 fs/smb/common/smbfsctl.h  |  7 +++---
 7 files changed, 77 insertions(+), 22 deletions(-)

-- 
2.20.1


             reply	other threads:[~2024-09-28 22:00 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-28 21:59 Pali Rohár [this message]
2024-09-28 21:59 ` [PATCH 1/8] smb: Update comments about some reparse point tags Pali Rohár
2024-09-28 21:59 ` [PATCH 2/8] cifs: Remove intermediate object of failed create reparse call Pali Rohár
2024-09-29 12:53   ` Pali Rohár
2024-09-29 14:03   ` [PATCH v2] " Pali Rohár
2024-09-29 16:01     ` Steve French
2024-09-30 15:25   ` [PATCH 2/8] " Paulo Alcantara
2024-09-30 17:20     ` Pali Rohár
2024-09-30 21:33       ` Paulo Alcantara
2024-09-30 20:25   ` [PATCH v3] " Pali Rohár
2024-09-30 21:33     ` Steve French
2024-09-28 21:59 ` [PATCH 3/8] cifs: Fix parsing NFS-style char/block devices Pali Rohár
2024-09-28 21:59 ` [PATCH 4/8] cifs: Fix creating " Pali Rohár
2024-09-29  0:18   ` Steve French
2024-09-29  0:44     ` Pali Rohár
     [not found]       ` <CAH2r5mvbUhcW_c46oUiHzfPg97n5qiRg9kzpCkmzG9uHygOF3g@mail.gmail.com>
2024-09-29  0:51         ` Pali Rohár
2024-09-28 21:59 ` [PATCH 5/8] cifs: Fix buffer overflow when parsing NFS reparse points Pali Rohár
2024-09-29 10:22   ` [PATCH v2] " Pali Rohár
2024-09-28 21:59 ` [PATCH 6/8] cifs: Do not convert delimiter when parsing NFS-style symlinks Pali Rohár
2024-09-28 21:59 ` [PATCH 7/8] cifs: Validate content of NFS reparse point buffer Pali Rohár
2024-09-28 21:59 ` [PATCH 8/8] cifs: Rename posix to nfs in parse_reparse_posix() and reparse_posix_data Pali Rohár
2024-09-29  4:57   ` Steve French
2024-09-29  9:09     ` Ralph Boehme
2024-09-29  9:26       ` Pali Rohár
2024-09-29 12:52         ` Ralph Boehme
2024-09-29 15:43           ` Steve French

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240928215948.4494-1-pali@kernel.org \
    --to=pali@kernel.org \
    --cc=linux-cifs@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pc@manguebit.com \
    --cc=ronniesahlberg@gmail.com \
    --cc=sfrench@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.