Resolve minor resource leaks reported by cppcheck in napi_id_helper.c

cppcheck output before this patch:
tools/testing/selftests/drivers/net/napi_id_helper.c:37:3: error: Resource 
leak: server [resourceLeak]
tools/testing/selftests/drivers/net/napi_id_helper.c:46:3: error: Resource 
leak: server [resourceLeak]
tools/testing/selftests/drivers/net/napi_id_helper.c:51:3: error: Resource 
leak: server [resourceLeak]
tools/testing/selftests/drivers/net/napi_id_helper.c:59:3: error: Resource 
leak: server [resourceLeak]
tools/testing/selftests/drivers/net/napi_id_helper.c:67:3: error: Resource 
leak: server [resourceLeak]
tools/testing/selftests/drivers/net/napi_id_helper.c:76:3: error: Resource 
leak: server [resourceLeak]

cppcheck output after this patch:
No resource leaks found

Signed-off-by: Malaya Kumar Rout <[email protected]>
---
 .../selftests/drivers/net/napi_id_helper.c    | 23 ++++++++++++-------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/tools/testing/selftests/drivers/net/napi_id_helper.c 
b/tools/testing/selftests/drivers/net/napi_id_helper.c
index eecd610c2109..5581d04e180f 100644
--- a/tools/testing/selftests/drivers/net/napi_id_helper.c
+++ b/tools/testing/selftests/drivers/net/napi_id_helper.c
@@ -18,8 +18,8 @@ int main(int argc, char *argv[])
        socklen_t optlen;
        char buf[1024];
        int opt = 1;
-       int server;
-       int client;
+       int server = -1;
+       int client = -1;
        int ret;
 
        server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
@@ -34,7 +34,7 @@ int main(int argc, char *argv[])
 
        if (setsockopt(server, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt))) {
                perror("setsockopt");
-               return 1;
+               goto failure;
        }
 
        address.sin_family = AF_INET;
@@ -43,12 +43,12 @@ int main(int argc, char *argv[])
 
        if (bind(server, (struct sockaddr *)&address, sizeof(address)) < 0) {
                perror("bind failed");
-               return 1;
+               goto failure;
        }
 
        if (listen(server, 1) < 0) {
                perror("listen");
-               return 1;
+               goto failure;
        }
 
        ksft_ready();
@@ -56,7 +56,7 @@ int main(int argc, char *argv[])
        client = accept(server, NULL, 0);
        if (client < 0) {
                perror("accept");
-               return 1;
+               goto failure;
        }
 
        optlen = sizeof(napi_id);
@@ -64,7 +64,7 @@ int main(int argc, char *argv[])
                         &optlen);
        if (ret != 0) {
                perror("getsockopt");
-               return 1;
+               goto failure;
        }
 
        read(client, buf, 1024);
@@ -73,11 +73,18 @@ int main(int argc, char *argv[])
 
        if (napi_id == 0) {
                fprintf(stderr, "napi ID is 0\n");
-               return 1;
+               goto failure;
        }
 
        close(client);
        close(server);
 
        return 0;
+
+failure:
+       if (client >= 0)
+               close(client);
+       if (server >= 0)
+               close(server);
+       return 1;
 }
-- 
2.43.0


Reply via email to