iSCSI-target: Use common error handling code in iscsi_decode_text_input()
Add a jump target so that a bit of exception handling can be better reused at the end of this function. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
6eaf69e4ec
commit
17c45b9006
|
@ -1380,10 +1380,8 @@ int iscsi_decode_text_input(
|
|||
char *key, *value;
|
||||
struct iscsi_param *param;
|
||||
|
||||
if (iscsi_extract_key_value(start, &key, &value) < 0) {
|
||||
kfree(tmpbuf);
|
||||
return -1;
|
||||
}
|
||||
if (iscsi_extract_key_value(start, &key, &value) < 0)
|
||||
goto free_buffer;
|
||||
|
||||
pr_debug("Got key: %s=%s\n", key, value);
|
||||
|
||||
|
@ -1396,38 +1394,37 @@ int iscsi_decode_text_input(
|
|||
|
||||
param = iscsi_check_key(key, phase, sender, param_list);
|
||||
if (!param) {
|
||||
if (iscsi_add_notunderstood_response(key,
|
||||
value, param_list) < 0) {
|
||||
kfree(tmpbuf);
|
||||
return -1;
|
||||
}
|
||||
if (iscsi_add_notunderstood_response(key, value,
|
||||
param_list) < 0)
|
||||
goto free_buffer;
|
||||
|
||||
start += strlen(key) + strlen(value) + 2;
|
||||
continue;
|
||||
}
|
||||
if (iscsi_check_value(param, value) < 0) {
|
||||
kfree(tmpbuf);
|
||||
return -1;
|
||||
}
|
||||
if (iscsi_check_value(param, value) < 0)
|
||||
goto free_buffer;
|
||||
|
||||
start += strlen(key) + strlen(value) + 2;
|
||||
|
||||
if (IS_PSTATE_PROPOSER(param)) {
|
||||
if (iscsi_check_proposer_state(param, value) < 0) {
|
||||
kfree(tmpbuf);
|
||||
return -1;
|
||||
}
|
||||
if (iscsi_check_proposer_state(param, value) < 0)
|
||||
goto free_buffer;
|
||||
|
||||
SET_PSTATE_RESPONSE_GOT(param);
|
||||
} else {
|
||||
if (iscsi_check_acceptor_state(param, value, conn) < 0) {
|
||||
kfree(tmpbuf);
|
||||
return -1;
|
||||
}
|
||||
if (iscsi_check_acceptor_state(param, value, conn) < 0)
|
||||
goto free_buffer;
|
||||
|
||||
SET_PSTATE_ACCEPTOR(param);
|
||||
}
|
||||
}
|
||||
|
||||
kfree(tmpbuf);
|
||||
return 0;
|
||||
|
||||
free_buffer:
|
||||
kfree(tmpbuf);
|
||||
return -1;
|
||||
}
|
||||
|
||||
int iscsi_encode_text_output(
|
||||
|
|
Loading…
Reference in New Issue