lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 23 May 2018 17:59:10 +0200
From:   Florian Schmaus <flo@...kplace.eu>
To:     Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc:     Florian Schmaus <flo@...kplace.eu>, linux-kernel@...r.kernel.org
Subject: [PATCH v6 0/3] driver-core: return EINVAL error instead of BUG_ON()

This patch series makes driver_register() emit an error message and
return a failure code instead of triggering a BUG_ON().

The first patch will cause driver_register() to fail gracefully if the
driver's bus was not initialized while printing out the name of the
faulty driver *and* the name of the involved bus. The second patch
records the error code if bus_register() fails. The third and final
patch of the series extends the first patch so that the recorded error
code is also print out if non-zero. Otherwise, if drv->bus->p is NULL
but the error code is zero, then probably bus_register() was never
called before.

Greg questioned [1] whether [2/3] and [3/3] are necessary:

> And really, when has this ever happened?  Why would a bus registration
> fail and later allow a driver to be registered?

I initially assumed that this is what cause me hitting the BUG_ON()
which [1/3] replaces: The bus registration failed and then the driver
attempts to register itself. But I did not had a chance to verify
that. I'll try to do so after my vacation. Meanwhile I hope that at
least [1/3] is considered an improvement of the kernel. If so, feel
free to pick it up.

1: Message-ID: <20180516163707.GD20425@...ah.com>

Florian Schmaus (3):
  driver-core: return EINVAL error instead of BUG_ON()
  driver-core: record error on bus registration
  driver-core: print bus registration error value

 drivers/base/bus.c     |  9 +++++++--
 drivers/base/driver.c  | 12 +++++++++++-
 include/linux/device.h |  1 +
 3 files changed, 19 insertions(+), 3 deletions(-)

-- 
2.16.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ