On Fri, Oct 07, 2022 at 02:47:41AM +0200, Stefano Brivio wrote: > 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 Reviewed-by: David Gibson > --- > util.c | 10 +++++++--- > 1 file 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 */ -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson