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

Commit d1c52736 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

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

parents 5ad54f80 b9530d43
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
/* Copyright (c) 2008-2019, The Linux Foundation. All rights reserved.
/* Copyright (c) 2008-2021, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -548,6 +548,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 ==
@@ -557,11 +558,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