From 07e2863d0271ac6c05206d8ce9e4f4c39b25d3ea Mon Sep 17 00:00:00 2001 From: Max Filippov Date: Wed, 17 Sep 2014 22:03:36 -0700 Subject: [PATCH] exec.c: fix setting 1-byte-long watchpoints With commit 05068c0dfb5b 'exec.c: Relax restrictions on watchpoint length and alignment' it's no longer possible to set 1-byte-long watchpoint because of incorrect address range check. Fix that by changing condition that checks for address wraparound. Signed-off-by: Max Filippov Reviewed-by: Peter Maydell Message-id: 1411016616-29879-1-git-send-email-jcmvbkbc@gmail.com Signed-off-by: Peter Maydell --- exec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exec.c b/exec.c index 2b2465117e..759055d0e3 100644 --- a/exec.c +++ b/exec.c @@ -595,7 +595,7 @@ int cpu_watchpoint_insert(CPUState *cpu, vaddr addr, vaddr len, CPUWatchpoint *wp; /* forbid ranges which are empty or run off the end of the address space */ - if (len == 0 || (addr + len - 1) <= addr) { + if (len == 0 || (addr + len - 1) < addr) { error_report("tried to set invalid watchpoint at %" VADDR_PRIx ", len=%" VADDR_PRIu, addr, len); return -EINVAL; -- GitLab