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

Commit 272a7b3a authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "diag: Add protection while accessing diag client map"

parents 55cfadad e6ab5a44
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -537,6 +537,7 @@ static int diag_remove_client_entry(struct file *file)
		return -EINVAL;
	}

	mutex_lock(&driver->diagchar_mutex);
	diagpriv_data = file->private_data;
	for (i = 0; i < driver->num_clients; i++)
		if (diagpriv_data && diagpriv_data->pid ==
@@ -546,11 +547,13 @@ static int diag_remove_client_entry(struct file *file)
		DIAG_LOG(DIAG_DEBUG_USERSPACE,
			"pid %d, not present in client map\n",
			diagpriv_data->pid);
		mutex_unlock(&driver->diagchar_mutex);
		mutex_unlock(&driver->diag_file_mutex);
		return -EINVAL;
	}
	DIAG_LOG(DIAG_DEBUG_USERSPACE, "diag: %s process exit with pid = %d\n",
		driver->client_map[i].name, diagpriv_data->pid);
	mutex_unlock(&driver->diagchar_mutex);
	/*
	 * clean up any DCI registrations, if this is a DCI client
	 * This will specially help in case of ungraceful exit of any DCI client