Commit caa575a8 authored by Robert Dolca's avatar Robert Dolca Committed by Samuel Ortiz

NFC: nci: fix possible crash in nci_core_conn_create

If the number of destination speific parameters supplied is 0
the call will fail. If the first destination specific parameter
does not have a value, curr_id will be set to 0.
Signed-off-by: default avatarRobert Dolca <robert.dolca@intel.com>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent 22e4bd09
...@@ -602,12 +602,19 @@ int nci_core_conn_create(struct nci_dev *ndev, u8 destination_type, ...@@ -602,12 +602,19 @@ int nci_core_conn_create(struct nci_dev *ndev, u8 destination_type,
if (!cmd) if (!cmd)
return -ENOMEM; return -ENOMEM;
if (!number_destination_params)
return -EINVAL;
cmd->destination_type = destination_type; cmd->destination_type = destination_type;
cmd->number_destination_params = number_destination_params; cmd->number_destination_params = number_destination_params;
memcpy(cmd->params, params, params_len); memcpy(cmd->params, params, params_len);
data.cmd = cmd; data.cmd = cmd;
ndev->cur_id = params->value[DEST_SPEC_PARAMS_ID_INDEX];
if (params->length > 0)
ndev->cur_id = params->value[DEST_SPEC_PARAMS_ID_INDEX];
else
ndev->cur_id = 0;
r = __nci_request(ndev, nci_core_conn_create_req, r = __nci_request(ndev, nci_core_conn_create_req,
(unsigned long)&data, (unsigned long)&data,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment