diff options
author | Lennart Poettering <lennart@poettering.net> | 2014-08-12 01:43:23 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2014-08-12 01:54:39 +0200 |
commit | 1cb5d1f31909c731d93568eb4838cb86e033d783 (patch) | |
tree | de784fff09e7274f4711893602b2da9ab3c01f7a /src/udev/udev-builtin-net_id.c | |
parent | 6436165dbc500f14abfec738af28f87a71f6a12a (diff) |
udev: modernize net_id builtin a bit
Diffstat (limited to 'src/udev/udev-builtin-net_id.c')
-rw-r--r-- | src/udev/udev-builtin-net_id.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c index 96ac21c167..3e2c8f8a6a 100644 --- a/src/udev/udev-builtin-net_id.c +++ b/src/udev/udev-builtin-net_id.c @@ -149,25 +149,22 @@ static int dev_pci_onboard(struct udev_device *dev, struct netnames *names) { /* read the 256 bytes PCI configuration space to check the multi-function bit */ static bool is_pci_multifunction(struct udev_device *dev) { - char filename[256]; - FILE *f = NULL; - char config[64]; - bool multi = false; + _cleanup_fclose_ FILE *f = NULL; + const char *filename; + uint8_t config[64]; - snprintf(filename, sizeof(filename), "%s/config", udev_device_get_syspath(dev)); + filename = strappenda(udev_device_get_syspath(dev), "/config"); f = fopen(filename, "re"); if (!f) - goto out; + return false; if (fread(&config, sizeof(config), 1, f) != 1) - goto out; + return false; /* bit 0-6 header type, bit 7 multi/single function device */ if ((config[PCI_HEADER_TYPE] & 0x80) != 0) - multi = true; -out: - if (f) - fclose(f); - return multi; + return true; + + return false; } static int dev_pci_slot(struct udev_device *dev, struct netnames *names) { |