From 89184254a42e69dcd088c527a2e5c32868674425 Mon Sep 17 00:00:00 2001 From: Andrew Turner Date: Thu, 16 Oct 2014 13:49:54 +0000 Subject: [PATCH] Fix the type of pte_pa as when it is passed into _kvm_pa2off it is either a uint64_t or a pointer to an off_t. With it being a u_long can result in incorrect values being returned. --- lib/libkvm/kvm_arm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/libkvm/kvm_arm.c b/lib/libkvm/kvm_arm.c index d221f6af13fc..ceff383f3bda 100644 --- a/lib/libkvm/kvm_arm.c +++ b/lib/libkvm/kvm_arm.c @@ -212,7 +212,7 @@ _kvm_kvatop(kvm_t *kd, u_long va, off_t *pa) struct vmstate *vm = kd->vmst; pd_entry_t pd; pt_entry_t pte; - u_long pte_pa; + off_t pte_pa; if (kd->vmst->minidump) return (_kvm_minidump_kvatop(kd, va, pa)); @@ -228,7 +228,7 @@ _kvm_kvatop(kvm_t *kd, u_long va, off_t *pa) return (_kvm_pa2off(kd, *pa, pa, L1_S_SIZE)); } pte_pa = (pd & L1_ADDR_MASK) + l2pte_index(va) * sizeof(pte); - _kvm_pa2off(kd, pte_pa, (off_t *)&pte_pa, L1_S_SIZE); + _kvm_pa2off(kd, pte_pa, &pte_pa, L1_S_SIZE); if (lseek(kd->pmfd, pte_pa, 0) == -1) { _kvm_syserr(kd, kd->program, "_kvm_kvatop: lseek"); goto invalid;