X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fudev%2Fudev-builtin-net_id.c;h=37ff1b800882a2a2d9c13a59d21c35d18bd23682;hb=e530ed5e1407e0571afc01552e41365ffb01befa;hp=96ac21c16771ff0f25cbb881e2e14049140f4e81;hpb=3058e017fced6d5c8712e10c8c1477421bc1e960;p=elogind.git diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c index 96ac21c16..37ff1b800 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 = strjoina(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) { @@ -194,12 +191,12 @@ static int dev_pci_slot(struct udev_device *dev, struct netnames *names) { s = names->pci_path; l = sizeof(names->pci_path); if (domain > 0) - l = strpcpyf(&s, l, "P%d", domain); - l = strpcpyf(&s, l, "p%ds%d", bus, slot); + l = strpcpyf(&s, l, "P%u", domain); + l = strpcpyf(&s, l, "p%us%u", bus, slot); if (func > 0 || is_pci_multifunction(names->pcidev)) - l = strpcpyf(&s, l, "f%d", func); + l = strpcpyf(&s, l, "f%u", func); if (dev_port > 0) - l = strpcpyf(&s, l, "d%d", dev_port); + l = strpcpyf(&s, l, "d%u", dev_port); if (l == 0) names->pci_path[0] = '\0'; @@ -310,7 +307,7 @@ static int names_usb(struct udev_device *dev, struct netnames *names) { s[0] = '\0'; interf = s+1; - /* prefix every port number in the chain with "u"*/ + /* prefix every port number in the chain with "u" */ s = ports; while ((s = strchr(s, '.'))) s[0] = 'u'; @@ -565,5 +562,5 @@ out: const struct udev_builtin udev_builtin_net_id = { .name = "net_id", .cmd = builtin_net_id, - .help = "network device properties", + .help = "Network device properties", };