X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvpp%2Fapp%2Fvpp_prometheus_export.c;h=e2fdd7150e524160e0db1436ff9fd01cb8c4b425;hb=b7b929931a07fbb27b43d5cd105f366c3e29807e;hp=8d09bc209a33168b5ebdc717b3923ffce2a2572e;hpb=bf49590c07162be44b21d0e0440e7fb96b2746d5;p=vpp.git diff --git a/src/vpp/app/vpp_prometheus_export.c b/src/vpp/app/vpp_prometheus_export.c index 8d09bc209a3..e2fdd7150e5 100644 --- a/src/vpp/app/vpp_prometheus_export.c +++ b/src/vpp/app/vpp_prometheus_export.c @@ -188,6 +188,7 @@ start_listen (u16 port) if (listenfd == -1) { perror ("Failed opening socket"); + return -1; } int rv = @@ -195,9 +196,11 @@ start_listen (u16 port) if (rv < 0) { perror ("Failed setsockopt"); + close (listenfd); + return -1; } - memset (&serveraddr, 0, sizeof (serveraddr)); + clib_memset (&serveraddr, 0, sizeof (serveraddr)); serveraddr.sin6_family = AF_INET6; serveraddr.sin6_port = htons (port); serveraddr.sin6_addr = in6addr_any; @@ -205,11 +208,13 @@ start_listen (u16 port) if (bind (listenfd, (struct sockaddr *) &serveraddr, addrlen) < 0) { fprintf (stderr, "bind() error %s\n", strerror (errno)); + close (listenfd); return -1; } if (listen (listenfd, 1000000) != 0) { fprintf (stderr, "listen() error for %s\n", strerror (errno)); + close (listenfd); return -1; } return listenfd; @@ -312,6 +317,7 @@ main (int argc, char **argv) } stat_segment_disconnect (); + close (fd); exit (0); }