Message ID | 20210615212121.1200820-2-keescook@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Include zone in pstore_device_info | expand |
On Tue, Jun 15, 2021 at 02:21:18PM -0700, Kees Cook wrote: > - if (!dev || !dev->total_size || !dev->read || !dev->write) > + if (!dev || !dev->total_size || !dev->read || !dev->write) { > + if (!dev) > + pr_err("NULL device info\n"); > + else { > + if (!dev->total_size) > + pr_err("zero sized device\n"); > + if (!dev->read) > + pr_err("no read handler for device\n"); > + if (!dev->write) > + pr_err("no write handler for device\n"); > + } > return -EINVAL; > + } I still find this style of checks pretty strange..
diff --git a/fs/pstore/blk.c b/fs/pstore/blk.c index 4bb8a344957a..91d7a848c85b 100644 --- a/fs/pstore/blk.c +++ b/fs/pstore/blk.c @@ -114,8 +114,19 @@ static int __register_pstore_device(struct pstore_device_info *dev) lockdep_assert_held(&pstore_blk_lock); - if (!dev || !dev->total_size || !dev->read || !dev->write) + if (!dev || !dev->total_size || !dev->read || !dev->write) { + if (!dev) + pr_err("NULL device info\n"); + else { + if (!dev->total_size) + pr_err("zero sized device\n"); + if (!dev->read) + pr_err("no read handler for device\n"); + if (!dev->write) + pr_err("no write handler for device\n"); + } return -EINVAL; + } /* someone already registered before */ if (pstore_zone_info)
There was no feedback on bad registration attempts. Add details on the failure cause. Signed-off-by: Kees Cook <keescook@chromium.org> --- fs/pstore/blk.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-)