summaryrefslogtreecommitdiff
path: root/pkg/pciutils/patch/0002-Fix-pointer-type-of-sscanf-arguments.patch
blob: 827ad7cc124e395b899d12601626811424fb2bad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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