linux/fs/afs
David Howells a45ea48e2b afs: Fix characters allowed into cell names
The afs filesystem needs to prohibit certain characters from cell names,
such as '/', as these are used to form filenames in procfs, leading to
the following warning being generated:

	WARNING: CPU: 0 PID: 3489 at fs/proc/generic.c:178

Fix afs_alloc_cell() to disallow nonprintable characters, '/', '@' and
names that begin with a dot.

Remove the check for "@cell" as that is then redundant.

This can be tested by running:

	echo add foo/.bar 1.2.3.4 >/proc/fs/afs/cells

Note that we will also need to deal with:

 - Names ending in ".invalid" shouldn't be passed to the DNS.

 - Names that contain non-valid domainname chars shouldn't be passed to
   the DNS.

 - DNS replies that say "your-dns-needs-immediate-attention.<gTLD>" and
   replies containing A records that say 127.0.53.53 should be
   considered invalid.
   [https://www.icann.org/en/system/files/files/name-collision-mitigation-01aug14-en.pdf]

but these need to be dealt with by the kafs-client DNS program rather
than the kernel.

Reported-by: syzbot+b904ba7c947a37b4b291@syzkaller.appspotmail.com
Cc: stable@kernel.org
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-01-26 08:54:04 -08:00
..
addr_list.c Keyrings namespacing 2019-07-08 19:36:47 -07:00
afs_cm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
afs_fs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
afs_vl.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
afs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
cache.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
callback.c afs: Fix possible assert with callbacks from yfs servers 2019-11-22 14:19:26 -08:00
cell.c afs: Fix characters allowed into cell names 2020-01-26 08:54:04 -08:00
cmservice.c afs: Switch the naming of call->iter and call->_iter 2019-11-21 09:12:17 +00:00
dir_edit.c afs: Remove set but not used variables 'before', 'after' 2019-11-21 20:36:00 +00:00
dir_silly.c fsnotify: move fsnotify_nameremove() hook out of d_delete() 2019-06-20 14:47:44 +02:00
dir.c afs: Fix afs_lookup() to not clobber the version on a new dentry 2020-01-14 09:40:06 -08:00
dynroot.c afs: Fix creation calls in the dynamic root to fail with EOPNOTSUPP 2019-12-11 17:47:51 +00:00
file.c afs: Rename desc -> req in afs_fetch_data() 2019-11-21 09:12:17 +00:00
flock.c fs: afs: Use pr_warn instead of pr_warning 2019-10-18 15:01:55 +02:00
fs_probe.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36 2019-05-24 17:27:11 +02:00
fsclient.c afs: Introduce an afs_get_read() refcount helper 2019-11-21 09:12:17 +00:00
inode.c Printk changes for 5.5 2019-11-25 19:40:40 -08:00
internal.h afs: Introduce an afs_get_read() refcount helper 2019-11-21 09:12:17 +00:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
main.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
Makefile afs: do not send list of client addresses 2019-06-02 18:06:26 -07:00
misc.c AFS development 2019-07-10 20:55:33 -07:00
mntpt.c afs: Fix mountpoint parsing 2019-12-11 16:56:54 +00:00
proc.c afs: Show volume name in /proc/net/afs/<cell>/volumes 2019-12-11 17:48:20 +00:00
protocol_uae.h afs: Add support for the UAE error table 2019-06-28 18:37:53 +01:00
protocol_yfs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36 2019-05-24 17:27:11 +02:00
rotate.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36 2019-05-24 17:27:11 +02:00
rxrpc.c AFS development 2019-11-30 10:57:22 -08:00
security.c afs: Support RCU pathwalk 2019-09-02 11:43:54 +01:00
server_list.c AFS development 2019-07-10 20:55:33 -07:00
server.c afs: Fix afs_find_server lookups for ipv4 peers 2019-12-09 15:04:43 +00:00
super.c afs: Fix missing cell comparison in afs_test_super() 2019-12-11 17:47:51 +00:00
vl_list.c fs/afs: Replace rcu_swap_protected() with rcu_replace_pointer() 2019-10-30 08:44:27 -07:00
vl_probe.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36 2019-05-24 17:27:11 +02:00
vl_rotate.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36 2019-05-24 17:27:11 +02:00
vlclient.c afs: Switch the naming of call->iter and call->_iter 2019-11-21 09:12:17 +00:00
volume.c afs: remove unused variable 'afs_voltypes' 2019-09-02 11:43:54 +01:00
write.c AFS development 2019-07-10 20:55:33 -07:00
xattr.c afs: xattr: use scnprintf 2019-11-21 09:12:17 +00:00
xdr_fs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36 2019-05-24 17:27:11 +02:00
yfsclient.c AFS development 2019-11-30 10:57:22 -08:00