From cdf2875a61e72c6d115bab1309da7e44b6f71874 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ciro=20Santilli=20=E5=85=AD=E5=9B=9B=E4=BA=8B=E4=BB=B6=20?= =?UTF-8?q?=E6=B3=95=E8=BD=AE=E5=8A=9F?= Date: Thu, 23 Jul 2020 01:00:00 +0000 Subject: [PATCH] pagemap.h: fix missing pread offset Fix https://github.com/cirosantilli/linux-kernel-module-cheat/issues/125 --- README.adoc | 5 ++++- lkmc/pagemap.h | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index dbea908..4b49a84 100644 --- a/README.adoc +++ b/README.adoc @@ -8173,7 +8173,10 @@ vaddr pfn soft-dirty file/shared swapped present library 7ffff78ec000 1fd4 0 1 0 1 /lib/libuClibc-1.0.30.so .... -Source: link:userland/linux/pagemap_dump.c[] +Source: + +* link:userland/linux/pagemap_dump.c[] +* link:lkmc/pagemap.h[] Adapted from: https://github.com/dwks/pagemap/blob/8a25747bc79d6080c8b94eac80807a4dceeda57a/pagemap2.c diff --git a/lkmc/pagemap.h b/lkmc/pagemap.h index 53921be..ddba470 100644 --- a/lkmc/pagemap.h +++ b/lkmc/pagemap.h @@ -37,7 +37,7 @@ int lkmc_pagemap_get_entry(LkmcPagemapEntry *entry, int pagemap_fd, uintptr_t va while (nread < sizeof(data)) { ret = pread( pagemap_fd, - &data, + ((uint8_t*)&data) + nread, sizeof(data) - nread, vpn * sizeof(data) + nread );