summaryrefslogtreecommitdiff
path: root/pkg/pciutils/patch/0002-Fix-pointer-type-of-sscanf-arguments.patch
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2020-08-16 17:26:26 -0700
committerMichael Forney <mforney@mforney.org>2020-08-16 17:26:32 -0700
commit3d514acfe7cf80ea5dfc189055bb2e7fdf6a2d43 (patch)
treec89055a6d20355c7b293f3c68369a8f3ded6ec71 /pkg/pciutils/patch/0002-Fix-pointer-type-of-sscanf-arguments.patch
parent7d88126e0ab869493e784d5b95569646883874a7 (diff)
Add pciutils 3.7.0
Diffstat (limited to 'pkg/pciutils/patch/0002-Fix-pointer-type-of-sscanf-arguments.patch')
-rw-r--r--pkg/pciutils/patch/0002-Fix-pointer-type-of-sscanf-arguments.patch64
1 files changed, 64 insertions, 0 deletions
diff --git a/pkg/pciutils/patch/0002-Fix-pointer-type-of-sscanf-arguments.patch b/pkg/pciutils/patch/0002-Fix-pointer-type-of-sscanf-arguments.patch
new file mode 100644
index 00000000..827ad7cc
--- /dev/null
+++ b/pkg/pciutils/patch/0002-Fix-pointer-type-of-sscanf-arguments.patch
@@ -0,0 +1,64 @@
+From b7a6ea17d3ba3a271b475da6f8a419e55ffb7310 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sun, 16 Aug 2020 16:23:10 -0700
+Subject: [PATCH] Fix pointer type of sscanf arguments
+
+---
+ lib/dump.c | 6 +++---
+ lib/sysfs.c | 2 +-
+ ls-kernel.c | 2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/lib/dump.c b/lib/dump.c
+index 59cf7ed..778d2ec 100644
+--- a/lib/dump.c
++++ b/lib/dump.c
+@@ -60,7 +60,7 @@ dump_init(struct pci_access *a)
+ FILE *f;
+ char buf[256];
+ struct pci_dev *dev = NULL;
+- int len, mn, bn, dn, fn, i, j;
++ unsigned int len, mn, bn, dn, fn, i, j;
+
+ if (!name)
+ a->error("dump: File name not given.");
+@@ -79,8 +79,8 @@ dump_init(struct pci_access *a)
+ *z-- = 0;
+ len = z - buf + 1;
+ mn = 0;
+- if (dump_validate(buf, "##:##.# ") && sscanf(buf, "%x:%x.%d", &bn, &dn, &fn) == 3 ||
+- dump_validate(buf, "####:##:##.# ") && sscanf(buf, "%x:%x:%x.%d", &mn, &bn, &dn, &fn) == 4)
++ if (dump_validate(buf, "##:##.# ") && sscanf(buf, "%x:%x.%u", &bn, &dn, &fn) == 3 ||
++ dump_validate(buf, "####:##:##.# ") && sscanf(buf, "%x:%x:%x.%u", &mn, &bn, &dn, &fn) == 4)
+ {
+ dev = pci_get_dev(a, mn, bn, dn, fn);
+ dump_alloc_data(dev, 256);
+diff --git a/lib/sysfs.c b/lib/sysfs.c
+index fb64241..df39b36 100644
+--- a/lib/sysfs.c
++++ b/lib/sysfs.c
+@@ -212,7 +212,7 @@ static void sysfs_scan(struct pci_access *a)
+ continue;
+
+ d = pci_alloc_dev(a);
+- if (sscanf(entry->d_name, "%x:%x:%x.%d", &dom, &bus, &dev, &func) < 4)
++ if (sscanf(entry->d_name, "%x:%x:%x.%u", &dom, &bus, &dev, &func) < 4)
+ a->error("sysfs_scan: Couldn't parse entry name %s", entry->d_name);
+
+ /* Ensure kernel provided domain that fits in a signed integer */
+diff --git a/ls-kernel.c b/ls-kernel.c
+index ecacd0e..4199402 100644
+--- a/ls-kernel.c
++++ b/ls-kernel.c
+@@ -156,7 +156,7 @@ show_kernel_init(void)
+ *c++ = 0;
+
+ e = xmalloc(sizeof(*e) + strlen(line));
+- if (sscanf(c, "%i%i%i%i%i%i",
++ if (sscanf(c, "%u%u%u%u%u%u",
+ &e->vendor, &e->device,
+ &e->subvendor, &e->subdevice,
+ &e->class, &e->class_mask) != 6)
+--
+2.28.0
+