Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull SCSI fixes from James Bottomley: "Two iscsi fixes. One for an oops in the client which can be triggered by the server authentication protocol and the other in the target code which causes data corruption" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: iscsi: set auth_protocol back to NULL if CHAP_A value is not supported scsi: target/iblock: Fix overrun in WRITE SAME emulation
This commit is contained in:
@@ -81,6 +81,12 @@ out:
|
||||
return CHAP_DIGEST_UNKNOWN;
|
||||
}
|
||||
|
||||
static void chap_close(struct iscsi_conn *conn)
|
||||
{
|
||||
kfree(conn->auth_protocol);
|
||||
conn->auth_protocol = NULL;
|
||||
}
|
||||
|
||||
static struct iscsi_chap *chap_server_open(
|
||||
struct iscsi_conn *conn,
|
||||
struct iscsi_node_auth *auth,
|
||||
@@ -118,7 +124,7 @@ static struct iscsi_chap *chap_server_open(
|
||||
case CHAP_DIGEST_UNKNOWN:
|
||||
default:
|
||||
pr_err("Unsupported CHAP_A value\n");
|
||||
kfree(conn->auth_protocol);
|
||||
chap_close(conn);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -133,19 +139,13 @@ static struct iscsi_chap *chap_server_open(
|
||||
* Generate Challenge.
|
||||
*/
|
||||
if (chap_gen_challenge(conn, 1, aic_str, aic_len) < 0) {
|
||||
kfree(conn->auth_protocol);
|
||||
chap_close(conn);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return chap;
|
||||
}
|
||||
|
||||
static void chap_close(struct iscsi_conn *conn)
|
||||
{
|
||||
kfree(conn->auth_protocol);
|
||||
conn->auth_protocol = NULL;
|
||||
}
|
||||
|
||||
static int chap_server_compute_md5(
|
||||
struct iscsi_conn *conn,
|
||||
struct iscsi_node_auth *auth,
|
||||
|
Reference in New Issue
Block a user