[PATCH] winedump: Fixed minidump processor revision decoding (Coverity)

Marcus Meissner meissner at suse.de
Thu May 5 08:27:06 CDT 2011


Hi,

Code mixed up bytes and words.
CID 1461

Resubmit with a >>12 replaced by more correct >>4.

Ciao, Marcus
---
 programs/winedbg/tgt_minidump.c |   14 +++++++-------
 tools/winedump/minidump.c       |    8 ++++----
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/programs/winedbg/tgt_minidump.c b/programs/winedbg/tgt_minidump.c
index 142d5ca..f5750e8 100644
--- a/programs/winedbg/tgt_minidump.c
+++ b/programs/winedbg/tgt_minidump.c
@@ -238,18 +238,18 @@ static enum dbg_start minidump_do_reload(struct tgt_process_minidump_data* data)
             strcat(tmp, str);
             if (msi->ProcessorLevel == 3 || msi->ProcessorLevel == 4)
             {
-                if (HIWORD(msi->ProcessorRevision) == 0xFF)
+                if (HIBYTE(msi->ProcessorRevision) == 0xFF)
                     sprintf(tmp + strlen(tmp), " (%c%d)",
-                            'A' + HIBYTE(LOWORD(msi->ProcessorRevision)),
-                            LOBYTE(LOWORD(msi->ProcessorRevision)));
+                            'A' + ((msi->ProcessorRevision>>4)&0xf)-0x0a,
+                            ((msi->ProcessorRevision&0xf)));
                 else
                     sprintf(tmp + strlen(tmp), " (%c%d)",
-                            'A' + HIWORD(msi->ProcessorRevision),
-                            LOWORD(msi->ProcessorRevision));
+                            'A' + HIBYTE(msi->ProcessorRevision),
+                            LOBYTE(msi->ProcessorRevision));
             }
             else sprintf(tmp + strlen(tmp), " (%d.%d)",
-                         HIWORD(msi->ProcessorRevision),
-                         LOWORD(msi->ProcessorRevision));
+                         HIBYTE(msi->ProcessorRevision),
+                         LOBYTE(msi->ProcessorRevision));
             str = tmp;
             break;
         case PROCESSOR_ARCHITECTURE_MIPS:
diff --git a/tools/winedump/minidump.c b/tools/winedump/minidump.c
index d860768..4cd04f3 100644
--- a/tools/winedump/minidump.c
+++ b/tools/winedump/minidump.c
@@ -267,12 +267,12 @@ void mdmp_dump(void)
                 strcat(tmp, " (");
                 if (msi->ProcessorLevel == 3 || msi->ProcessorLevel == 4)
                 {
-                    if (HIWORD(msi->ProcessorRevision) == 0xFF)
-                        sprintf(tmp + strlen(tmp), "%c%d", 'A' + HIBYTE(LOWORD(msi->ProcessorRevision)), LOBYTE(LOWORD(msi->ProcessorRevision)));
+                    if (HIBYTE(msi->ProcessorRevision) == 0xFF)
+                        sprintf(tmp + strlen(tmp), "%c%d", 'A' + ((msi->ProcessorRevision>>4)&0xf)-0x0a, msi->ProcessorRevision&0xf);
                     else
-                        sprintf(tmp + strlen(tmp), "%c%d", 'A' + HIWORD(msi->ProcessorRevision), LOWORD(msi->ProcessorRevision));
+                        sprintf(tmp + strlen(tmp), "%c%d", 'A' + HIBYTE(msi->ProcessorRevision), LOBYTE(msi->ProcessorRevision));
                 }
-                else sprintf(tmp + strlen(tmp), "%d.%d", HIWORD(msi->ProcessorRevision), LOWORD(msi->ProcessorRevision));
+                else sprintf(tmp + strlen(tmp), "%d.%d", HIBYTE(msi->ProcessorRevision), LOBYTE(msi->ProcessorRevision));
                 str = tmp;
                 break;
             case PROCESSOR_ARCHITECTURE_MIPS:
-- 
1.7.1



More information about the wine-patches mailing list