From 33c770b174ec77d7da6e7e830e0bca9f74d54367 Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Thu, 15 Nov 2012 17:30:03 +0100 Subject: udev: hwdb - properly handle a missing database MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On Thu, Nov 15, 2012 at 5:05 PM, Zbigniew Jędrzejewski-Szmek wrote: > Something like this appeared with latest git: > > Nov 15 16:55:46 fedora-15 systemd-udevd[334]: worker [364] terminated by signal 11 (Segmentation fault) > Nov 15 16:55:46 fedora-15 [387]: Process 364 (systemd-udevd) dumped core. > Nov 15 16:55:46 fedora-15 systemd-udevd[334]: worker [364] failed while handling '/devices/virtual/net/lo' > Nov 15 16:55:46 fedora-15 systemd-udevd[334]: worker [360] terminated by signal 11 (Segmentation fault) > Nov 15 16:55:46 fedora-15 systemd-udevd[334]: worker [360] failed while handling '/devices/pci0000:00/0000:00:03.0/virtio0/net > Nov 15 16:55:46 fedora-15 [389]: Process 360 (systemd-udevd) dumped core. > > Core was generated by usr/lib/systemd/systemd-udevd'. > Program terminated with signal 11, Segmentation fault. > #0 0x0000000000423c87 in udev_hwdb_get_properties_list_entry (hwdb=0x0, modalias=0x7fffbcd155f0 --- src/libudev/libudev-hwdb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/libudev') diff --git a/src/libudev/libudev-hwdb.c b/src/libudev/libudev-hwdb.c index 751b34209e..6779e45b4e 100644 --- a/src/libudev/libudev-hwdb.c +++ b/src/libudev/libudev-hwdb.c @@ -377,7 +377,7 @@ bool udev_hwdb_validate(struct udev_hwdb *hwdb) { _public_ struct udev_list_entry *udev_hwdb_get_properties_list_entry(struct udev_hwdb *hwdb, const char *modalias, unsigned int flags) { int err; - if (!hwdb->f) { + if (!hwdb || !hwdb->f) { errno = EINVAL; return NULL; } -- cgit v1.2.3-54-g00ecf