Not a normal case, but noticed that setting some callbacks to
NULL in rte_vhost_driver_callback_register() causes a seg fault e.g. [0].

Added missing checks before calling. Alternative fix is to make some
callbacks mandatory and check during register - is that an API change? maybe,
so took simpler approach.

A bit hard to find fixed commit due to the time and amount of
development in vhost code.

[0]

3302│         if (!(dev->flags & VIRTIO_DEV_RUNNING)) {
3303├>                if (dev->notify_ops->new_device(dev->vid) == 0)
3304│                         dev->flags |= VIRTIO_DEV_RUNNING;
3305│         }

(gdb) frame 1
at ../lib/vhost/vhost_user.c:3303
(gdb) p dev->notify_ops->new_device
$3 = (int (*)(int)) 0x0

Kevin Traynor (1):
  vhost: add NULL callback checks

 lib/vhost/vduse.c      | 3 ++-
 lib/vhost/vhost.c      | 5 +++--
 lib/vhost/vhost_user.c | 3 ++-
 3 files changed, 7 insertions(+), 4 deletions(-)

-- 
2.48.1

Reply via email to