diff options
author | Martin Mares <mj@ucw.cz> | 2024-03-12 20:47:28 +0100 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 2024-03-12 20:47:28 +0100 |
commit | 9b31027f1d78c75bc41c5511ca50545a66229b59 (patch) | |
tree | e1fa75112701f3a1cc55e019e5cadbc31c9f80b0 | |
parent | 6278190565a4e0ad0d4de44ceb16a5370a66bbc3 (diff) | |
download | pciutils-9b31027f1d78c75bc41c5511ca50545a66229b59.tar.gz |
sysfs: Avoid close() potentially clobbering errno
-rw-r--r-- | lib/sysfs.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/sysfs.c b/lib/sysfs.c index cd2379e..48ed6da 100644 --- a/lib/sysfs.c +++ b/lib/sysfs.c @@ -105,12 +105,13 @@ sysfs_get_string(struct pci_dev *d, char *object, char *buf, int mandatory) return 0; } n = read(fd, buf, OBJBUFSIZE); + int read_errno = errno; close(fd); if (n < 0) { - warn("Error reading %s: %s", namebuf, strerror(errno)); + warn("Error reading %s: %s", namebuf, strerror(read_errno)); return 0; - } + } if (n >= OBJBUFSIZE) { warn("Value in %s too long", namebuf); |