[Stgt-devel] [Patch] Segmentation fault in conn_close
FUJITA Tomonori
fujita.tomonori
Fri Jul 25 15:43:09 CEST 2008
From: Tomas Henzl <thenzl at redhat.com>
Subject: [Stgt-devel] [Patch] Segmentation fault in conn_close
Date: Fri, 25 Jul 2008 14:56:22 +0200
> Hi,
>
> I noticed a segfault which is probably caused by the patch
> "iscsi: needs to call iscsi_free_cmd_task for commands in tx_clist"
> b723430058dcbe3b201a2a2c38ce114217dc5273
>
> it looks like that for some reason iscsi_free_cmd_task(task); gets called with
> appropriate scmd zeroed out (not initialized ?) and then it causes a segfault
> in list_del.
>
> I don't know how could it happen that this structure (scmd) is empty. The patch
> below solves my problem - it restores the old behaviour if the scmd is empty
> as it was before the patch mentioned above.
I think that this bug was fixed by:
commit 73c6fab9f7f9e34aa14c359413b467be5e0ce0dc
Author: FUJITA Tomonori <fujita.tomonori at lab.ntt.co.jp>
Date: Sat Jul 12 15:47:38 2008 +0900
iscsi: fix conn_close() segfaults
The problem is that conn_close() calls iscsi_free_cmd_task against
tasks in conn->tx_clist. But we could have non SCSI command tasks in
conn->tx_clist (such as NOOP). We can't call cmd_hlist_remove for such
tasks.
Signed-off-by: FUJITA Tomonori <fujita.tomonori at lab.ntt.co.jp>
As the commit log says, non SCSI command tasks don't initialize scmd.
More information about the stgt
mailing list