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

Commit 564901bd authored by Kalesh Singh's avatar Kalesh Singh
Browse files

ANDROID: 16K: Only check basename of linker context



Depending on the platform binary being executed, the linker
(interpreter) requested can be one of:

    1) /system/bin/bootstrap/linker64
    2) /system/bin/linker64
    3) /apex/com.android.runtime/bin/linker64

Relax the check to the basename (linker64), instead of the path.

Bug: 330767927
Bug: 335584973
Change-Id: I4a1f95b7cecd126f85ad8cefd9ff10d272947f9e
Signed-off-by: default avatarKalesh Singh <kaleshsingh@google.com>
parent 73b793dd
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
#include <linux/mm.h>
#include <linux/sched/task_stack.h>
#include <linux/slab.h>
#include <linux/string.h>
#include <linux/sysfs.h>

typedef void (*show_pad_maps_fn)	(struct seq_file *m, struct vm_area_struct *vma);
@@ -183,7 +184,15 @@ static inline bool linker_ctx(void)
		memset(buf, 0, bufsize);
		path = d_path(&file->f_path, buf, bufsize);

		if (!strcmp(path, "/system/bin/linker64"))
		/*
		 * Depending on interpreter requested, valid paths could be any of:
		 *   1. /system/bin/bootstrap/linker64
		 *   2. /system/bin/linker64
		 *   3. /apex/com.android.runtime/bin/linker64
		 *
		 * Check the base name (linker64).
		 */
		if (!strcmp(kbasename(path), "linker64"))
			return true;
	}