Signed-off-by: YAMAMOTO Takashi <yamam...@midokura.com> --- linux-user/syscall.c | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 999760448d..86b12cc8b4 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -8027,26 +8027,9 @@ static int is_proc_file(const char *filename, int *pidp, const char *entry) static int is_proc_myself(const char *filename, const char *entry) { - if (!strncmp(filename, "/proc/", strlen("/proc/"))) { - filename += strlen("/proc/"); - if (!strncmp(filename, "self/", strlen("self/"))) { - filename += strlen("self/"); - } else if (*filename >= '1' && *filename <= '9') { - char myself[80]; - snprintf(myself, sizeof(myself), "%d/", getpid()); - if (!strncmp(filename, myself, strlen(myself))) { - filename += strlen(myself); - } else { - return 0; - } - } else { - return 0; - } - if (!strcmp(filename, entry)) { - return 1; - } - } - return 0; + int pid; + + return is_proc_file(filename, &pid, entry) && pid == getpid(); } #if defined(HOST_WORDS_BIGENDIAN) != defined(TARGET_WORDS_BIGENDIAN) || \ -- 2.21.1 (Apple Git-122.3)