https://bugs.kde.org/show_bug.cgi?id=422174

Mark Wielaard <m...@klomp.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|REPORTED                    |CONFIRMED

--- Comment #4 from Mark Wielaard <m...@klomp.org> ---
(In reply to Tom Hughes from comment #3)
> Not sure what Mark means by noise - it looks like JMP rel32 to me.

Clearly I am a bad instruction decoder.

> 0x48 is a REX prefix
> 0xE9 is JMP rel32 in 64 bit mode
> 0x70 0xB3 0x41 0xA9 is the offset
> 
> The offset of 0xA941B370 is sign extended to 64 bits.
> 
> So I make that a jump to RIP-0x56be4c90 which I'll admit seems like a very
> large offset to be using on a PC relative jump...
> 
> Thing is that we appear to handle that instruction... I think we're failing
> on this:
> 
>       if (sz != 4)
>          goto decode_failure; /* JRS added 2004 July 11 */
> 
> because the REX.W bit has changed sz to 8 but the Intel manual has note f64
> attached to that instruction in the opcode map which is:
> 
> "The operand size is forced to a 64-bit operand size when in 64-bit mode
> (prefixes that change operand size are ignored for this instruction in
> 64-bit mode)."
> 
> So I think the size check is invalid.

Thanks so much for that analysis.
With the following patch:

diff --git a/VEX/priv/guest_amd64_toIR.c b/VEX/priv/guest_amd64_toIR.c
index fadf47d41..6d26be5fa 100644
--- a/VEX/priv/guest_amd64_toIR.c
+++ b/VEX/priv/guest_amd64_toIR.c
@@ -21392,9 +21393,8 @@ Long dis_ESC_NONE (

    case 0xE9: /* Jv (jump, 16/32 offset) */
       if (haveF3(pfx)) goto decode_failure;
-      if (sz != 4) 
-         goto decode_failure; /* JRS added 2004 July 11 */
       if (haveF2(pfx)) DIP("bnd ; "); /* MPX bnd prefix. */
+      sz = 4; /* Force 32bit signed offset. */
       d64 = (guest_RIP_bbstart+delta+sz) + getSDisp(sz,delta); 
       delta += sz;
       jmp_lit(dres, Ijk_Boring, d64);

We get the result from dotnet --version we expect!

$ ./vg-in-place dotnet --version 2>/dev/null
3.1.103

But there are lots of "issues" reported by valgrind that probably need some
investigation:

$ ./vg-in-place dotnet --version
==99198== Memcheck, a memory error detector
==99198== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==99198== Using Valgrind-3.16.0.GIT and LibVEX; rerun with -h for copyright
info
==99198== Command: dotnet --version
==99198== 
==99198== Warning: set address range perms: large range [0x59c87000,
0xd3877000) (noaccess)
==99198== Warning: set address range perms: large range [0x59c87000,
0xd3877000) (noaccess)
==99198== Warning: set address range perms: large range [0x59c87000,
0xcb877000) (noaccess)
==99198== Warning: set address range perms: large range [0x59c87000,
0xcb877000) (noaccess)
==99198== Warning: set address range perms: large range [0x59c87000,
0xc3877000) (noaccess)
==99198== Warning: set address range perms: large range [0x59c87000,
0xc3877000) (noaccess)
==99198== Warning: set address range perms: large range [0x59c87000,
0xbb877000) (noaccess)
==99198== Warning: set address range perms: large range [0x59c87000,
0xbb877000) (noaccess)
==99198== Warning: set address range perms: large range [0x59c87000,
0xb3877000) (noaccess)
==99198== Warning: set address range perms: large range [0x59c87000,
0xb3877000) (noaccess)
==99198== Warning: set address range perms: large range [0x59c87000,
0xab877000) (noaccess)
==99198== Warning: set address range perms: large range [0x59c87000,
0xab877000) (noaccess)
==99198== Warning: set address range perms: large range [0x6f78000, 0x50b68000)
(noaccess)
==99198== Warning: set address range perms: large range [0x6f78000, 0x50b68000)
(noaccess)
==99198== Warning: set address range perms: large range [0x6f78000, 0x48b68000)
(noaccess)
==99198== Warning: set address range perms: large range [0x6f78000, 0x48b68000)
(noaccess)
==99198== Warning: set address range perms: large range [0x6f78000, 0x40b68000)
(noaccess)
==99198== Warning: set address range perms: large range [0x6f78000, 0x40b68000)
(noaccess)
==99198== Warning: set address range perms: large range [0x6f78000, 0x38b68000)
(noaccess)
==99198== Warning: set address range perms: large range [0x6f78000, 0x38b68000)
(noaccess)
==99198== Warning: set address range perms: large range [0x5ba69000,
0x85659000) (noaccess)
==99198== Warning: set address range perms: large range [0x879b000, 0x2079d000)
(noaccess)
==99198== Conditional jump or move depends on uninitialised value(s)
==99198==    at 0x227C8281: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x227BC071: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x22862AF9: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x2279F1F8: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x227A13D5: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x227A0DA3: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x227A1CCB: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x227A56FB: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x576B733: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x576B81A: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x576B960: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x576C23F: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198== 
==99198== Conditional jump or move depends on uninitialised value(s)
==99198==    at 0x227BE388: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x227C2E9A: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x2286F38C: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x2279F65E: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x227A13D5: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x227A0DA3: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x227A1CCB: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x227A56FB: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x576B733: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x576B81A: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x576B960: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x576C23F: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198== 
==99198== Conditional jump or move depends on uninitialised value(s)
==99198==    at 0x2279B009: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x2279B0E1: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x22794034: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x227A0645: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x227A13D5: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x227A0DA3: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x227A1CCB: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x227A56FB: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libclrjit.so)
==99198==    by 0x576B733: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x576B81A: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x576B960: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x576C23F: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198== 
==99198== Thread 11:
==99198== Conditional jump or move depends on uninitialised value(s)
==99198==    at 0x5B03ED7: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x57E1DA9: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5B065D2: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x4875431: start_thread (in /usr/lib64/libpthread-2.31.so)
==99198==    by 0x4BA19D2: clone (in /usr/lib64/libc-2.31.so)
==99198== 
==99198== Thread 1:
==99198== Conditional jump or move depends on uninitialised value(s)
==99198==    at 0x484234A: strstr (vg_replace_strmem.c:1642)
==99198==    by 0x5AD4F7C: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5AD529C: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5AD598D: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5718BD8: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5791C5A: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5906F98: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5AC41FB: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5AC47AA: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5ABA160: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x59064DD: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x58CE3BC: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198== 
==99198== Conditional jump or move depends on uninitialised value(s)
==99198==    at 0x484235C: strstr (vg_replace_strmem.c:1642)
==99198==    by 0x5AD4F7C: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5AD529C: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5AD598D: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5718BD8: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5791C5A: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5906F98: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5AC41FB: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5AC47AA: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5ABA160: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x59064DD: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x58CE3BC: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198== 
==99198== Conditional jump or move depends on uninitialised value(s)
==99198==    at 0x4842382: strstr (vg_replace_strmem.c:1642)
==99198==    by 0x5AD4F7C: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5AD529C: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5AD598D: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5718BD8: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5791C5A: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5906F98: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5AC41FB: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5AC47AA: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5ABA160: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x59064DD: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x58CE3BC: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198== 
==99198== Warning: invalid file descriptor -1 in syscall close()
==99198== Warning: invalid file descriptor -1 in syscall close()
==99198== Syscall param write(buf) points to unaddressable byte(s)
==99198==    at 0x4B9C43D: syscall (in /usr/lib64/libc-2.31.so)
==99198==    by 0x5DE4EA1: ??? (in /usr/lib64/libunwind.so.8.0.1)
==99198==    by 0x5DE4CB7: ??? (in /usr/lib64/libunwind.so.8.0.1)
==99198==    by 0x5DE9267: ??? (in /usr/lib64/libunwind.so.8.0.1)
==99198==    by 0x5DE9B9C: ??? (in /usr/lib64/libunwind.so.8.0.1)
==99198==    by 0x5DE5BC3: _ULx86_64_step (in /usr/lib64/libunwind.so.8.0.1)
==99198==    by 0x5AD162C: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5AD1A47: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5742C39: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x583644D: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5C0012AD: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/System.Private.CoreLib.dll)
==99198==    by 0x5C001010: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/System.Private.CoreLib.dll)
==99198==  Address 0x1ffeffc000 is on thread 1's stack
==99198==  1352 bytes below stack pointer
==99198== 
==99198== Syscall param write(buf) points to uninitialised byte(s)
==99198==    at 0x4B9C43D: syscall (in /usr/lib64/libc-2.31.so)
==99198==    by 0x5DE4EA1: ??? (in /usr/lib64/libunwind.so.8.0.1)
==99198==    by 0x5DE4CB7: ??? (in /usr/lib64/libunwind.so.8.0.1)
==99198==    by 0x5DE969B: ??? (in /usr/lib64/libunwind.so.8.0.1)
==99198==    by 0x5DE9B9C: ??? (in /usr/lib64/libunwind.so.8.0.1)
==99198==    by 0x5DE5BC3: _ULx86_64_step (in /usr/lib64/libunwind.so.8.0.1)
==99198==    by 0x5AD162C: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5AD1A47: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5742C39: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x583644D: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5C0012AD: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/System.Private.CoreLib.dll)
==99198==    by 0x5C001010: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/System.Private.CoreLib.dll)
==99198==  Address 0x1ffeffd000 is on thread 1's stack
==99198== 
==99198== Conditional jump or move depends on uninitialised value(s)
==99198==    at 0x5AD15AD: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x58C026D: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x57511D6: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5750FD5: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x58B4371: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x58B3CA7: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x58B2FFD: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x58B7D11: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x58B7F46: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5836578: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x5C0012AD: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/System.Private.CoreLib.dll)
==99198==    by 0x5C001010: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/System.Private.CoreLib.dll)
==99198== 
3.1.103
==99198== Thread 14:
==99198== Syscall param sigaltstack(ss) points to uninitialised byte(s)
==99198==    at 0x4ADD3DB: sigaltstack (in /usr/lib64/libc-2.31.so)
==99198==    by 0x5B058B8: ??? (in
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/3.1.3/libcoreclr.so)
==99198==    by 0x4875250: __nptl_deallocate_tsd (in
/usr/lib64/libpthread-2.31.so)
==99198==    by 0x4875444: start_thread (in /usr/lib64/libpthread-2.31.so)
==99198==    by 0x4BA19D2: clone (in /usr/lib64/libc-2.31.so)
==99198==  Address 0x26e3ae78 is on thread 14's stack
==99198== 
==99198== 
==99198== HEAP SUMMARY:
==99198==     in use at exit: 2,974,023 bytes in 3,594 blocks
==99198==   total heap usage: 57,255 allocs, 53,661 frees, 19,544,194 bytes
allocated
==99198== 
==99198== LEAK SUMMARY:
==99198==    definitely lost: 2,872 bytes in 1 blocks
==99198==    indirectly lost: 0 bytes in 0 blocks
==99198==      possibly lost: 13,114 bytes in 73 blocks
==99198==    still reachable: 2,956,537 bytes in 3,501 blocks
==99198==                       of which reachable via heuristic:
==99198==                         newarray           : 4,264 bytes in 1 blocks
==99198==         suppressed: 1,500 bytes in 19 blocks
==99198== Rerun with --leak-check=full to see details of leaked memory
==99198== 
==99198== Use --track-origins=yes to see where uninitialised values come from
==99198== For lists of detected and suppressed errors, rerun with: -s
==99198== ERROR SUMMARY: 184 errors from 11 contexts (suppressed: 0 from 0)

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to