Alexandre Julliard : server: Avoid unaligned access when printing x86 floating point registers.

Alexandre Julliard julliard at winehq.org
Fri Jul 22 09:17:57 CDT 2016


Module: wine
Branch: master
Commit: 0b933f1f4839e5e1a2dd2125547b5ecdf2b91e0f
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0b933f1f4839e5e1a2dd2125547b5ecdf2b91e0f

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Jul 22 11:49:37 2016 +0900

server: Avoid unaligned access when printing x86 floating point registers.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 server/trace.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/server/trace.c b/server/trace.c
index d48c205..9286ebd 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -567,7 +567,11 @@ static void dump_varargs_context( const char *prefix, data_size_t size )
             fprintf( stderr, ",fp.data_off=%08x,fp.data_sel=%08x,fp.cr0npx=%08x",
                      ctx.fp.i386_regs.data_off, ctx.fp.i386_regs.data_sel, ctx.fp.i386_regs.cr0npx );
             for (i = 0; i < 8; i++)
-                fprintf( stderr, ",fp.reg%u=%Lg", i, *(long double *)&ctx.fp.i386_regs.regs[10*i] );
+            {
+                long double reg = 0;
+                memcpy( &reg, &ctx.fp.i386_regs.regs[10 * i], 10 );
+                fprintf( stderr, ",fp.reg%u=%Lg", i, reg );
+            }
         }
         if (ctx.flags & SERVER_CTX_EXTENDED_REGISTERS)
         {




More information about the wine-cvs mailing list