qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PULL for-2.5] tcg: Fix highwater check


From: Richard Henderson
Subject: Re: [Qemu-devel] [PULL for-2.5] tcg: Fix highwater check
Date: Mon, 23 Nov 2015 14:49:52 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0

On 11/23/2015 02:16 PM, Stefan Weil wrote:
Am 23.11.2015 um 13:45 schrieb Richard Henderson:
From: John Clarke <address@hidden>

A simple typo in the variable to use when comparing vs the highwater mark.
Reports are that qemu can in fact segfault occasionally due to this mistake.

Signed-off-by: John Clarke <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
---
  tcg/tcg.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tcg/tcg.c b/tcg/tcg.c
index 682af8a..b20ed19 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -2443,7 +2443,7 @@ int tcg_gen_code(TCGContext *s, tcg_insn_unit 
*gen_code_buf)
             one operation beginning below the high water mark cannot overrun
             the buffer completely.  Thus we can test for overflow after
             generating code without having to check during generation.  */
-        if (unlikely(s->code_gen_ptr > s->code_gen_highwater)) {
+        if (unlikely((void *)s->code_ptr > s->code_gen_highwater)) {
              return -1;
          }
      }


Is a comparison of void pointers portable?

Of course. Particularly since these really are pointers into the same allocated object. That's 100% ANSI C.

code_gen_highwater should be fixed anyway because
in translate-all a difference is calculated with it.

Yes, but we freely make use of this gcc extension in many places.


r~




reply via email to

[Prev in Thread] Current Thread [Next in Thread]