Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 18836029 authored by Christophe Ricard's avatar Christophe Ricard Committed by Samuel Ortiz
Browse files

nfc: nci: Fix nci_core_conn_create to allowing empty destination



NCI_CORE_CONN_CREATE may not have any destination type parameter.

Signed-off-by: default avatarChristophe Ricard <christophe-h.ricard@st.com>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent 99adc394
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -610,9 +610,6 @@ int nci_core_conn_create(struct nci_dev *ndev, u8 destination_type,
	struct nci_core_conn_create_cmd *cmd;
	struct core_conn_create_data data;

	if (!number_destination_params)
		return -EINVAL;

	data.length = params_len + sizeof(struct nci_core_conn_create_cmd);
	cmd = kzalloc(data.length, GFP_KERNEL);
	if (!cmd)
@@ -620,17 +617,20 @@ int nci_core_conn_create(struct nci_dev *ndev, u8 destination_type,

	cmd->destination_type = destination_type;
	cmd->number_destination_params = number_destination_params;
	memcpy(cmd->params, params, params_len);

	data.cmd = cmd;

	if (params) {
		memcpy(cmd->params, params, params_len);
		if (params->length > 0)
			ndev->cur_id = params->value[DEST_SPEC_PARAMS_ID_INDEX];
		else
			ndev->cur_id = 0;
	} else {
		ndev->cur_id = 0;
	}

	r = __nci_request(ndev, nci_core_conn_create_req,
			  (unsigned long)&data,
	r = __nci_request(ndev, nci_core_conn_create_req, (unsigned long)&data,
			  msecs_to_jiffies(NCI_CMD_TIMEOUT));
	kfree(cmd);
	return r;