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

Commit 5902544d authored by Mahesh Sivasubramanian's avatar Mahesh Sivasubramanian Committed by Bernhard Thoben
Browse files

drivers: qcom: lpm-stats: Fix undefined access error



In cleanup_stats(), a freed memory pointer pos might be accessed for
list traversal. Switch to using _safe() variant of the list API to
prevent undefined accesses.

Bug: 79421260
Change-Id: I7d068cb7813ccb9bfdbcab4646b4ec890145828a
Signed-off-by: default avatarMahesh Sivasubramanian <msivasub@codeaurora.org>
(cherry picked from commit 13af073dc34ebfbb888e03b96bb9b204088ed7c2)
parent 6ae86235
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
/* Copyright (c) 2012-2014, The Linux Foundation. All rights reserved.
/* Copyright (c) 2012-2014, 2018, 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
@@ -590,11 +590,14 @@ static void cleanup_stats(struct lpm_stats *stats)
{
	struct list_head *centry = NULL;
	struct lpm_stats *pos = NULL;
	struct lpm_stats *n = NULL;

	centry = &stats->child;
	list_for_each_entry_reverse(pos, centry, sibling) {
		if (!list_empty(&pos->child))
	list_for_each_entry_safe_reverse(pos, n, centry, sibling) {
		if (!list_empty(&pos->child)) {
			cleanup_stats(pos);
			continue;
		}

		list_del_init(&pos->child);