[ros-diffs] [tkreuzer] 37302: Update SizeOfImage in PE header, fixes boot.

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Wed Nov 12 13:30:20 CET 2008


Author: tkreuzer
Date: Wed Nov 12 06:30:19 2008
New Revision: 37302

URL: http://svn.reactos.org/svn/reactos?rev=37302&view=rev
Log:
Update SizeOfImage in PE header, fixes boot.

Modified:
    branches/ros-amd64-bringup/reactos/tools/rsym/rsym64.c

Modified: branches/ros-amd64-bringup/reactos/tools/rsym/rsym64.c
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/tools/rsym/rsym64.c?rev=37302&r1=37301&r2=37302&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/tools/rsym/rsym64.c [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/tools/rsym/rsym64.c [iso-8859-1] Wed Nov 12 06:30:19 2008
@@ -197,10 +197,16 @@
             break;
         /* PSEH types */
         case 0x1c:
+            printf("found 1c at %lx\n", State->Location);
             State->Scope = 1;
             break;
         case 0x1d:
+            printf("found 1d at %lx\n", State->Location);
             State->Scope = 2;
+            break;
+        case 0x1e:
+            printf("found 1e at %lx\n", State->Location);
+            State->Scope = 3;
             break;
         default:
             fprintf(stderr, "unknown instruction 0x%x at 0x%p\n", Code, pc);
@@ -507,8 +513,13 @@
     int ret, Size, Pos;
     DWORD Checksum;
 
-    /* Correct section count */
+    /* Update section count */
     File->FileHeader->NumberOfSections = File->UsedSections + 2; // FIXME!!!
+
+    /* Update SizeOfImage */
+    Size = File->xdata.psh->PointerToRawData
+           + File->xdata.psh->SizeOfRawData;
+    File->OptionalHeader->SizeOfImage = Size;
 
     /* Calculate size of file beginning */
     Size = File->SectionHeaders[File->UsedSections].PointerToRawData;



More information about the Ros-diffs mailing list