Thanks. If you dont mind, i will open a bug repor for you and post your finidings there. If you have anything else, please let me know if i can assist.

Best regards

2010/9/18 Pavel Pisa <ppisa4lists@pikron.com>
Hello all,

I have noticed, that pxefixup does not set IMAGE_SCN_MEM_NOT_PAGED flag
for read-only data section ".rdata". May it be, that it is problem
for my own build of tools

586-mingw32-gcc (GCC) 4.4.2 and
GNU ld (GNU Binutils) 2.20.51.20100608

I have fixed the problem by preparing modified LD script version
which collect object files .rdata section into .text section
for my driver build.

But .rdata is legitimate section and it is automatically
generated by GCC. I have not found information in Wiki
or list archives, that there is some way/patch to deal
with this situation. But if it is allowed, that WDM
driver binaries contains readonly section then data paging
could lead to horrible consequences. Possible fix


diff --git a/reactos/tools/pefixup.c b/reactos/tools/pefixup.c
index f908a9a..d6ec1f4 100644
--- a/reactos/tools/pefixup.c
+++ b/reactos/tools/pefixup.c
@@ -381,6 +381,7 @@ int main(int argc, char **argv)
         if (!strcmp((char*)section_header->Name, ".text") ||
             !strcmp((char*)section_header->Name, ".data") ||
             !strcmp((char*)section_header->Name, ".idata") ||
+             !strcmp((char*)section_header->Name, ".rdata") ||
             !strcmp((char*)section_header->Name, ".bss"))
         {
            section_header->Characteristics |= htodl(IMAGE_SCN_MEM_NOT_PAGED);

If .rdata are not allowed or should be used only for pseudo_reloc,
then the ldscript for kernel code should be provided.


Missing flag for .rdata section in objdump ouput

$ i586-mingw32-objdump --headers ul_wdm.sys
BFD: ul_wdm.sys: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section .text
BFD: ul_wdm.sys: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section .data
BFD: ul_wdm.sys: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section .bss
BFD: ul_wdm.sys: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section .idata

ul_wdm.sys:     file format pei-i386

Sections:
Idx Name          Size      VMA               LMA               File off  Algn
 0 .text         0000cabc  00011000  00011000  00001000  2**2
                 CONTENTS, ALLOC, LOAD, READONLY, CODE
 1 .data         000000e8  0001e000  0001e000  0000e000  2**2
                 CONTENTS, ALLOC, LOAD, DATA
 2 .rdata        00003c20  0001f000  0001f000  0000f000  2**2
                 CONTENTS, ALLOC, LOAD, READONLY, DATA
 3 .bss          00000050  00023000  00023000  00000000  2**2
                 ALLOC
 4 .edata        00000033  00024000  00024000  00013000  2**2
                 CONTENTS, ALLOC, LOAD, READONLY, DATA
 5 .idata        000008c4  00025000  00025000  00014000  2**2
                 CONTENTS, ALLOC, LOAD, DATA
 6 .rsrc         0000035c  00026000  00026000  00015000  2**2
                 CONTENTS, ALLOC, LOAD, DATA
 7 .reloc        00000cd4  00027000  00027000  00016000  2**2
                 CONTENTS, ALLOC, LOAD, READONLY, DATA
 8 .rossym       0001576d  00028000  00028000  00017000  2**2
                 CONTENTS, READONLY, NEVER_LOAD, EXCLUDE

_______________________________________________
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev