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
|