[PATCH] iscsi: fix leak of session->initiator_alias

Ryusuke Konishi <[email protected]>
Newsgroups org.kernel.vger.stgt
Message-ID <[email protected]>
session->initiator_alias is not freed in error paths of
session_create() and even in the normal path of session_destroy().

This fixes these leak bugs.

Note that we don't have to do a null check for
session->initiator_alias before calling free(session->initiator_alias)
because free() function simply ignores NULL pointer.

Signed-off-by: Ryusuke Konishi <[email protected]>
---
 usr/iscsi/session.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/usr/iscsi/session.c b/usr/iscsi/session.c
index 98c0949..22638e7 100644
--- a/usr/iscsi/session.c
+++ b/usr/iscsi/session.c
@@ -106,8 +106,7 @@ int session_create(struct iscsi_connection *conn)
 	session->info = zalloc(1024);
 	if (!session->info) {
 		free(session->initiator);
-		if (session->initiator_alias)
-			free(session->initiator_alias);
+		free(session->initiator_alias);
 		free(session);
 		return -ENOMEM;
 	}
@@ -124,6 +123,7 @@ int session_create(struct iscsi_connection *conn)
 	err = it_nexus_create(target->tid, tsih, 0, session->info);
 	if (err) {
 		free(session->initiator);
+		free(session->initiator_alias);
 		free(session->info);
 		free(session);
 		return err;
@@ -174,6 +174,7 @@ static void session_destroy(struct iscsi_session *session)
 	list_del(&session->hlist);
 
 	free(session->initiator);
+	free(session->initiator_alias);
 	free(session->info);
 	free(session);
 }
-- 
1.7.9.3
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.