ceph: fix potential bad pointer deref in async dirops cb's
authorJeff Layton <jlayton@kernel.org>
Wed, 8 Apr 2020 12:41:38 +0000 (08:41 -0400)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 13 Apr 2020 17:33:47 +0000 (19:33 +0200)
commit2a575f138d003fff0f4930b5cfae4a1c46343b8f
tree81df5b30d09f3b0360216ef0842dc0e26c7c77f7
parent8ae0299a4b72f2f9ad2b755da91c6a2beabaee62
ceph: fix potential bad pointer deref in async dirops cb's

The new async dirops callback routines can pass ERR_PTR values to
ceph_mdsc_free_path, which could cause an oops. Make ceph_mdsc_free_path
ignore ERR_PTR values. Also, ensure that the pr_warn messages look sane
even if ceph_mdsc_build_path fails.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
fs/ceph/dir.c
fs/ceph/file.c
fs/ceph/mds_client.h