aboutgitcodebugslistschat
diff options
context:
space:
mode:
authorStefano Brivio <sbrivio@redhat.com>2022-10-07 02:07:33 +0200
committerStefano Brivio <sbrivio@redhat.com>2022-10-15 02:10:36 +0200
commit9de65dd3f43a0ee976cc01250641834d99bbfa74 (patch)
tree735725ffcea986d72190dcaeb82618a7c578f062
parente23024ccfff661ad5aee7c122a1833a103fbb971 (diff)
downloadpasst-9de65dd3f43a0ee976cc01250641834d99bbfa74.tar
passt-9de65dd3f43a0ee976cc01250641834d99bbfa74.tar.gz
passt-9de65dd3f43a0ee976cc01250641834d99bbfa74.tar.bz2
passt-9de65dd3f43a0ee976cc01250641834d99bbfa74.tar.lz
passt-9de65dd3f43a0ee976cc01250641834d99bbfa74.tar.xz
passt-9de65dd3f43a0ee976cc01250641834d99bbfa74.tar.zst
passt-9de65dd3f43a0ee976cc01250641834d99bbfa74.zip
util: Check return value of lseek() while reading bound ports from procfs
Coverity now noticed we're checking most lseek() return values, but not this. Not really relevant, but it doesn't hurt to check we can actually seek before reading lines. Signed-off-by: Stefano Brivio <sbrivio@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
-rw-r--r--util.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/util.c b/util.c
index b366167..5b1e08a 100644
--- a/util.c
+++ b/util.c
@@ -311,10 +311,14 @@ void procfs_scan_listen(struct ctx *c, uint8_t proto, int ip_version, int ns,
path = "/proc/net/udp6";
}
- if (*fd != -1)
- lseek(*fd, 0, SEEK_SET);
- else if ((*fd = open(path, O_RDONLY | O_CLOEXEC)) < 0)
+ if (*fd != -1) {
+ if (lseek(*fd, 0, SEEK_SET)) {
+ warn("lseek() failed on %s: %s", path, strerror(errno));
+ return;
+ }
+ } else if ((*fd = open(path, O_RDONLY | O_CLOEXEC)) < 0) {
return;
+ }
lineread_init(&lr, *fd);
lineread_get(&lr, &line); /* throw away header */