From: Michael Brown Date: Mon, 4 Jul 2016 15:14:22 +0000 (+0100) Subject: [iscsi] Treat redirection failures as fatal X-Git-Tag: v1.20.1~403 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=55f7a675d61f8b83478e71d4f9efb3a1b789eb08;p=thirdparty%2Fipxe.git [iscsi] Treat redirection failures as fatal Debugged-by: Robin Smidsrød Signed-off-by: Michael Brown --- diff --git a/src/net/tcp/iscsi.c b/src/net/tcp/iscsi.c index 019a4c14e..ec004e4ba 100644 --- a/src/net/tcp/iscsi.c +++ b/src/net/tcp/iscsi.c @@ -1710,6 +1710,7 @@ static int iscsi_vredirect ( struct iscsi_session *iscsi, int type, va_list args ) { va_list tmp; struct sockaddr *peer; + int rc; /* Intercept redirects to a LOCATION_SOCKET and record the IP * address for the iBFT. This is a bit of a hack, but avoids @@ -1725,7 +1726,15 @@ static int iscsi_vredirect ( struct iscsi_session *iscsi, int type, va_end ( tmp ); } - return xfer_vreopen ( &iscsi->socket, type, args ); + /* Redirect to new location */ + if ( ( rc = xfer_vreopen ( &iscsi->socket, type, args ) ) != 0 ) + goto err; + + return 0; + + err: + iscsi_close ( iscsi, rc ); + return rc; } /** iSCSI socket interface operations */