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

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

Merge "ANDROID: xt_qtaguid: Remove tag_entry from process list on untag"

parents e3c2608d 108aabc2
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -2424,15 +2424,20 @@ int qtaguid_untag(struct socket *el_socket, bool kernel)
	 * At first, we want to catch user-space code that is not
	 * opening the /dev/xt_qtaguid.
	 */
	if (IS_ERR_OR_NULL(pqd_entry) || !sock_tag_entry->list.next) {
	if (IS_ERR_OR_NULL(pqd_entry))
		pr_warn_once("qtaguid: %s(): "
			     "User space forgot to open /dev/xt_qtaguid? "
			     "pid=%u tgid=%u sk_pid=%u, uid=%u\n", __func__,
			     current->pid, current->tgid, sock_tag_entry->pid,
			     from_kuid(&init_user_ns, current_fsuid()));
	} else {
	/*
	 * This check is needed because tagging from a process that
	 * didn’t open /dev/xt_qtaguid still adds the sock_tag_entry
	 * to sock_tag_tree.
	 */
	if (sock_tag_entry->list.next)
		list_del(&sock_tag_entry->list);
	}

	spin_unlock_bh(&uid_tag_data_tree_lock);
	/*
	 * We don't free tag_ref from the utd_entry here,