aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>2024-03-12 20:47:28 +0100
committerMartin Mares <mj@ucw.cz>2024-03-12 20:47:28 +0100
commit9b31027f1d78c75bc41c5511ca50545a66229b59 (patch)
treee1fa75112701f3a1cc55e019e5cadbc31c9f80b0
parent6278190565a4e0ad0d4de44ceb16a5370a66bbc3 (diff)
downloadpciutils-9b31027f1d78c75bc41c5511ca50545a66229b59.tar.gz
sysfs: Avoid close() potentially clobbering errno
-rw-r--r--lib/sysfs.c5
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);