Archives
D Programming
DD.gnu digitalmars.D digitalmars.D.bugs digitalmars.D.dtl digitalmars.D.dwt digitalmars.D.announce digitalmars.D.learn digitalmars.D.debugger C/C++ Programming
c++c++.announce c++.atl c++.beta c++.chat c++.command-line c++.dos c++.dos.16-bits c++.dos.32-bits c++.idde c++.mfc c++.rtl c++.stl c++.stl.hp c++.stl.port c++.stl.sgi c++.stlsoft c++.windows c++.windows.16-bits c++.windows.32-bits c++.wxwindows digitalmars.empire digitalmars.DMDScript |
c++ - coff2omf bug - C2OTEST.zip
Walter... I believe that a bug exists in coff2omf that causes it to skip certain .obj files when it is processing a .lib file. I can not tell you exactly why it refuses to process the .obj files but I do know the following things: 1) The skipping has nothing to do with the contents of the .obj. The coff2omf will process one file then skip an almost identical file. 2) Of the files I have tested, the only difference between a file processed by coff2omf and one that is skipped is the length of the file name. (I do not know if the filename length has anything to do with the problem. I am only stating what I observed.) I have examined this issue using a .lib file that is impacted by this bug (uuid32.lib) by doing the following in a batch file: 1) extract each .obj file to a subdirectory (there are well over 1,000 files). 2) run coff2omf on each obj file, one at a time, capturing the output to a text file. Only 13 files are processed. Here is the redirected output: COFF2OMF: Converting 'c:\psdk\bin\wrk\vcguids.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids_guid0.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids_guid1.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids_guid2.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids_guid3.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids_guid4.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids_guid5.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids_guid6.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids_guid7.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids_guid8.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids_guid9.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\go7.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids.obj' NOTE: I observed that of the files that were NOT processed by coff2omf, all had filenames that were atleast one character greater in length than the longest filename in the list of files that WERE processed. IOW - any file with a name length greater than 15 characters was skipped. [I am attaching my batch file in case you or anyone else would like to check my findings.] 3) I used DUMPBIN to examin the contents of similar .obj files where one file was processed by coff2omf and the other file skipped. Here is an example of two very similar .obj files extracted from uuid32.lib and opened using DUMPBIN to display the symbols. (BTW, no functions are exported from uuid32.lib) ---[DUMPBIN guids_guid0.obj OUTPUT START]---------------- String Table Size = 0x1A bytes COFF SYMBOL TABLE 000 00000000 DEBUG notype Filename | .file guids_guid0.c 002 00000000 SECT1 notype Static | .debug$S Section length 91, #relocs 2, #linenums 0, checksum 0 004 00000000 SECT2 notype Static | .rdata Section length 10, #relocs 0, #linenums 0, checksum 0 006 00000000 SECT2 notype External | _CLSID_StdURLMoniker 007 00000000 SECT3 notype Static | .debug$T Section length 94, #relocs 0, #linenums 0, checksum 0 ---[DUMPBIN OUTPUT END]---------------------------------- And here is the output from DUMPBIN /SYMBOLS uuid.lib showing symbols in guids_guid10.obj, one of the files coff2omf skipped over. ---[DUMPBIN guids_guid10.obj OUTPUT START]--------------- String Table Size = 0x24 bytes COFF SYMBOL TABLE 000 00000000 DEBUG notype Filename | .file guids_guid10.c 002 00000000 SECT1 notype Static | .debug$S Section length 90, #relocs 2, #linenums 0, checksum 0 004 00000000 SECT2 notype Static | .rdata Section length 10, #relocs 0, #linenums 0, checksum 0 006 00000000 SECT2 notype External | _IID_IAsyncMoniker 007 00000000 SECT3 notype Static | .debug$T Section length 94, #relocs 0, #linenums 0, checksum 0 ---[DUMPBIN OUTPUT END]---------------------------------- As you can see the skipped file is almost exactly the same as the processed file. I don't think there is any question that this is a correctable programming error. I know that you have fixed uuid32.lib, and I appreciate that you have given time to the Win32 programming community, but that fix was really a treating of the symptom. I'd like to see the problem fixed at the root. I realize that you have many other important issues to devote precious time to, so even if you would add this to the to-do list I would be grateful. Thank you, Roger Scudder Apr 01 2006
Jan has informed me that I need to bring this to Walter Oney, not Walter Bright. -Roger In article <e0mua6$11f8$1 digitaldaemon.com>, r.scudder rcn.com says...Walter... I believe that a bug exists in coff2omf that causes it to skip certain .obj files when it is processing a .lib file. I can not tell you exactly why it refuses to process the .obj files but I do know the following things: 1) The skipping has nothing to do with the contents of the .obj. The coff2omf will process one file then skip an almost identical file. 2) Of the files I have tested, the only difference between a file processed by coff2omf and one that is skipped is the length of the file name. (I do not know if the filename length has anything to do with the problem. I am only stating what I observed.) I have examined this issue using a .lib file that is impacted by this bug (uuid32.lib) by doing the following in a batch file: 1) extract each .obj file to a subdirectory (there are well over 1,000 files). 2) run coff2omf on each obj file, one at a time, capturing the output to a text file. Only 13 files are processed. Here is the redirected output: COFF2OMF: Converting 'c:\psdk\bin\wrk\vcguids.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids_guid0.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids_guid1.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids_guid2.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids_guid3.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids_guid4.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids_guid5.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids_guid6.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids_guid7.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids_guid8.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids_guid9.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\go7.obj' COFF2OMF: Converting 'c:\psdk\bin\wrk\guids.obj' NOTE: I observed that of the files that were NOT processed by coff2omf, all had filenames that were atleast one character greater in length than the longest filename in the list of files that WERE processed. IOW - any file with a name length greater than 15 characters was skipped. [I am attaching my batch file in case you or anyone else would like to check my findings.] 3) I used DUMPBIN to examin the contents of similar .obj files where one file was processed by coff2omf and the other file skipped. Here is an example of two very similar .obj files extracted from uuid32.lib and opened using DUMPBIN to display the symbols. (BTW, no functions are exported from uuid32.lib) ---[DUMPBIN guids_guid0.obj OUTPUT START]---------------- String Table Size = 0x1A bytes COFF SYMBOL TABLE 000 00000000 DEBUG notype Filename | .file guids_guid0.c 002 00000000 SECT1 notype Static | .debug$S Section length 91, #relocs 2, #linenums 0, checksum 0 004 00000000 SECT2 notype Static | .rdata Section length 10, #relocs 0, #linenums 0, checksum 0 006 00000000 SECT2 notype External | _CLSID_StdURLMoniker 007 00000000 SECT3 notype Static | .debug$T Section length 94, #relocs 0, #linenums 0, checksum 0 ---[DUMPBIN OUTPUT END]---------------------------------- And here is the output from DUMPBIN /SYMBOLS uuid.lib showing symbols in guids_guid10.obj, one of the files coff2omf skipped over. ---[DUMPBIN guids_guid10.obj OUTPUT START]--------------- String Table Size = 0x24 bytes COFF SYMBOL TABLE 000 00000000 DEBUG notype Filename | .file guids_guid10.c 002 00000000 SECT1 notype Static | .debug$S Section length 90, #relocs 2, #linenums 0, checksum 0 004 00000000 SECT2 notype Static | .rdata Section length 10, #relocs 0, #linenums 0, checksum 0 006 00000000 SECT2 notype External | _IID_IAsyncMoniker 007 00000000 SECT3 notype Static | .debug$T Section length 94, #relocs 0, #linenums 0, checksum 0 ---[DUMPBIN OUTPUT END]---------------------------------- As you can see the skipped file is almost exactly the same as the processed file. I don't think there is any question that this is a correctable programming error. I know that you have fixed uuid32.lib, and I appreciate that you have given time to the Win32 programming community, but that fix was really a treating of the symptom. I'd like to see the problem fixed at the root. I realize that you have many other important issues to devote precious time to, so even if you would add this to the to-do list I would be grateful. Thank you, Roger Scudder begin 0644 C2OTEST.zip M4$L#!!0````(`,Z& 33\]/:V*RT``$5F` `+````0S)/5$535"Y"052EG4^3 M(T=R[.\TXW?`50>-%I%9_WB0/8E+[M*D?2-;D:8]T&P-TXV> =C=F`> A\-O M_WI([G05RC,](IV773*\O*LR\ =D1485_L\W7__Y]>;UM]]^^<6G__?JM__9 MW-CQLC]?-O^\V5S>'<Z;-[O+S;O-W>%^O_GY<'^_V7^\G'8WE\WN^?\?[YXU M^\WQS?_NG__+)\UY<W<Z/FR>G ZWK^X/;S:_F\[_N1PWN\WYZ<W=\?YV?]H\ M[A[VMYO_^>M_O-ILOKO\]C>>31\WIZ?'S<WQ[LZ.#W>;X^-FOWL^C^<_!2Q_ M/;O=X^WFM+\]G#Z=RZ^G]71Y_W3Y]/=>__#]?_WP_:OO__;]YNYX>E;N[G\Y M'\ZOEE<^^^>T_W]/ST8/^\?+^:O-]I\V?SG<G([GX]UE\Y_?_?NK;_[V#3B+ MQ3_V3R^#\/#T/)YO]IO#XZ_G]?7__/'S'_ZO?_OAOY^]OOMV\W]??[_YYF_? M_??WFU<_?C[R3Z^_?[UY//XVDL^B?PB>A^O'QZ?GD?I5<+[L3I<OO_C+?_SQ MN[]^&LDOO_CJ]__T?+(OI_$OW_SM^[_^V]???_6GY__R_!]>71[>__T//]Z\ M??[7OQ_^_NE__O#J>8!_NX!_>1ZTKWX^_52(Q[VWQ'NK>+^<&/;^'&_Q_GQP MP?L?\1;O+?'>"MY&O$WP3L0["=Z9>&?!NR/>G>#=$^]>\!Z(]R!XC\1[%+PG MXCVU>V\)\UN!^2UA?BLPOR7,;P7FMX3YK<#\EC"_%9C?$N:W`O-;POQ68'Y+ MF-\*S&\)\UN!^2UA?BLPOR7,;P7FC3!O`O-&F#>!>2/,F\"\$>9-8-X(\R8P M;X1Y$Y WPKP)S!MAW 3FC3!O`O-&F#>!^42X3`*7F7AGP;LCWIW W1/O7O`> MB/< >(_$>Q2\)^(]M7N_?#5 [Y=X S>YOS3A_M+(.M:$=:R1[TL3OB^-,&\" M\T:8-X%Y(\R;P+P1YDU W CS)C!OA'D3F#?"O`G,)\)\$IA/A/DD,)\(\TE M/A'FD\!\(LPG ?E$F$\"\XDPGP3F$V$^"<PGPGP2F$^$^20PGPCS26`^$^:S MP'PFS&>!^4R8SP+SF3"?!>8S83X+S&?"?!:8SX3Y+#"?"?-98#X3YK/`?";, M9X'Y3)C/`O,=8;X3F.\(\YW`?$>8[P3F.\)\)S#?$>8[ ?F.,-\)S'>$^4Y MOB/,=P+S'6&^$YCO"/.=P'Q'F.\$YGO"?"\PWQ/F>X'YGC#?"\SWA/E>8+XG MS/<"\SUAOA>8[PGSO<!\3YCO!>9[PGPO,-\3YGN!^9XPWPO,#X3Y06!^(,P/ M`O,#87X0F!\(\X/`_$"8'P3F!\+\(#`_$.8' ?F!,#\(S`^$^4% ?B#,#P+S M`V%^$) ?"?.CP/Q(F!\%YD?"_" P/Q+F1X'YD3`_"LR/A/E18'XDS(\"\R-A M?A28'PGSH\#\2) ?!>9'POPH,#\1YB>!^8DP/PG,3X3Y26!^(LQ/`O,387X2 MF)\(\Y/`_$28GP3F)\+\)#`_$>8G ?F),#\)S$^$^2G(_-WA_K(__7XPX!+' M?=['W?._K:Q?O'$\[HWZUG&\P1N,"8XW>(//*AQO\`:?53C>X`T^JW"\P1M\ M5N%X S?XK,+Q!F_P687C#=[ LPK'X]ZH)P?'X]YH[Q_'X]YHCQ''X]YH+P/' MX]ZH9HKC<6]4F\'QN#>Z!\3QN#=::^*XT_O-_Z(OEA=O&&_P1I_?,-[BO>YU MQO$6[W6O,XZW>*][G7&\Q7O=ZXSC+=[K7F<<;_%>]SKC>(OWNM<9QUN\U[W. M.-[BO>YUQO$6[_7S#3C>X(W653#>XDV8#S[?L#R6,!]\OF%Y+&$^^'S#\EC" M?/#YAN6QA/G \PW+8PGSP><;EL<2YH//-RR/)<P'GV]8'DN8#S[?L#R6,&\" M\^A^!\9;O`GS26`^$>:3P'PBS">!^4283P+SB3"?!.8383X)S"?"?!*83X3Y M)#"?"/-)8#X1YI/`/*I#P'B+-V$^"\QGPGP6F,^$^2PPGPGS66`^$^:SP'PF MS&>!^4R8SP+SF3"?!>8S83X+S&?"?!:81_5!&&_Q)LQW`O,=8;X3F.\(\YW` M?$>8[P3F.\)\)S#?$>8[ ?F.,-\)S'>$^4Y OB/,=P+S'6&^$YA'=7L8;_$F MS/<"\SUAOA>8[PGSO<!\3YCO!>9[PGPO,-\3YGN!^9XPWPO,]X3Y7F"^)\SW M`O,]8;X7F$?[:3#>XDV8'P3F!\+\(#`_$.8' ?F!,#\(S`^$^4% 'O1QX'B# M-^CCP'&G]\W+H;#7`L;CWK#7`L8;O-%>'8PW>*.].AAO\$9[`C#>X(UJCS#> MX(UJ'##>X(WNI6"\P1NMV6"\P1M]-\!X S?Z/('Q!F_T>0+C<6_8(P+C#=Z$ M^>A[6Q;'$N:C[VU9'$N8C[ZW97$L83[ZWI;%L83YZ'M;%L<2YJ/O;5D<2YB/ MOK=E<2QA/OK>EL6QA/GH>UL6QQ+FH^]MF1\+>[= O,&;,!]];\OB6,)\]+TM MBV,)\]'WMBR.)<Q'W]NR.)8P'WUOR^)8PGSTO2V+8PGST?>V+(XES$??V[(X MEC`??6_+XEC"?/2]+?-C84\EC#=X$^:C[VV9'PO[-6$\[ W[-6$\[ W[-6$\ M[ W[-6$\[ W[-6'<Z7V_1S>G+]XPWN"-OAM O,4;U'U O,4;U'U O,4;U'U MO,4;U'U O,4;U'U O,4;U'IAO,4;U'IAO,4;U'IAO,4;U'IAO,4;U'IAO,$; MK=E O,6;,!_MUUP<2YB/]FO.CT5K31AO\$9K31AO\$9K31AO\$9K31AO\$9K M31AO\$9K31AO\$9K31CW>9\/=P^72HT:Q^/>J$:-XW%O5`O#<:?WY7C:?UQ= M]8LWC+=XKS]/<-SG_?3XT^//C^4U&XXW>(,U&X[[O"^GGW:W#^7SQO$&;W#> M.-[ #;[3<+S!&WPWX'B#-_ANP/$&;_#= .,-WN"[`<?=WC?'^AP$\09O/`=! MO.3]'/[QD,;^QP^_/F-^?OGPF_WSV;LB\IW\[N9R^'#[YNW5I7_^`SC>Y+TE MWEO%^_<3*WK_%F_SWA+OK>!MQ-L$[T2\D^"=B7<6O#OBW0G>/?'N!>^!>`^" M]TB\1\%[(MY3N[<1YDU W CS)C!OA'D3F#?"O`G,&V'>!.:-,&\"\T:8-X%Y M(\R;P+P1YDU W CS)C!OA'D3F$^$^20PGPCS26`^$>:3P'PBS">!^4283P+S MB3"?!.8383X)S"?"?!*83X3Y)#"?"/-)8#X1YI/`?";,9X'Y3)C/`O.9,)\% MYC-A/ O,9\)\%IC/A/DL,)\)\UE /A/FL\!\)LQG ?E,F,\"\YDPGP7F.\)\ M)S#?$>8[ ?F>G'<OG/=`O`?!>R3>H^`]$>\I['V^>5^M*:WB3=ZXIK2*-WGC M>]=5O,D;KY%7\29O_%V\BC=Y8^97\29OS.4JWN2-N5S%F[PQEZMXDS?F<A7W M>=^\VST^O%V]6?2S-XZW>(,?=H;Q%F_PP\XPWN(-?M 9QIW>QX>;W7IW]<4; MQAN\T0N88;S!&[V`&<8;O-$+F&'<YWU[>%AO\<R\<3SLO27>6\';B+<)WHEX M)\$[$^\L>'?$NQ.\>^+=Q[W/[_<?R\SC>(,W8!['&[P!\SC>X`V8QW&G]_'F M65\9;QAO\$;C#>,-WFB\8;S!&XTWC#=X ^8"'&_P!LT%.-[ #9H+<-SGO?_X M:0:7YR".-WB#.8CC+=[K]2".MWBOUX,XWN*]7 _B>(OW>CV(XRW>ZV9J'&_Q M7C=3XWB+][J9&L=;O-?-U#C>XKUNIL;Q%N]U,S6.-WB#[P8<;_$FS`>;J9?' M$N:#S=3+8PGSP9??+H\ES`=??KL\EC`??/GM\EC"?/#EM\MC"?/!E]\NCR7, M!U]^NSR6,!]\^>WR6,)\\.6WBV/!F W'&[S!F W'&[S!F W'&[S!F W'&[S! MPP(XWN`-'A;`\09O\+``CON\/QUR7I5/7KQQ/.J])=Y;Q1O6?7`\[HT>H,#Q MN#=Z `+'X][H`0H<CWNCEQ; >-P;/1R-XW%O]``SCL>]T0/,.![W1 \PXWC< M&SW`C.-Q;_0`,XZ'O6$]%L?CWH3YK<#\EC"_%9C?$N:W`O-;POQ68'Y+F-\* MS&\)\UN!^2UA?BLPOR7,;P7FMX3YK<#\EC"_%9B'^R0X'O<FS)O`O!'F36#> M"/,F,&^$>1.8-\*\"<P;8=X$YHTP;P+S1I W 7DCS)O`O!'F36`>[E_B>-R; M,)\$YA-A/ G,)\)\$IA/A/DD,)\(\TE /A'FD\!\(LPG ?E$F$\"\XDPGP3F M$V$^"<S#O (<CWL3YK/`?";,9X'Y3)C/`O.9,)\%YC-A/ O,9\)\%IC/A/DL M,)\)\UE /A/FL\!\)LQG 7G8[X/C<6_"?"<PWQ'F.X'YCC#?"<QWA/E.8+XC MS'<"\QUAOA.8[PCSG<!\1YCO!.8[PGPG,-\1YCN!>=B'A^-Q;\)\+S#?$^9[ M ?F>,-\+S/>$^5Y OB?,]P+S/6&^%YCO"?.]P'Q/F.\%YGO"?"\PWQ/F>X'Y M 3`_",P/A/E!8'X S`\"\P-A?A"8'PCS \#\0) ?!.8'POP ,#\0Y >!^8$P M/PC,#X3Y06!^(,P/`O,C87X4F!\)\Z/`_$B8'P7F1\+\*#`_$N9' ?F1,#\* MS(^$^5% ?B3,CP+S(V%^%) ?"?.CP/Q(F!\%YB?"_"0P/Q'F)X'YB3`_"<Q/ MA/E)8'XBS$\"\Q-A?A*8GPCSD\#\1)B?!.8GPOPD,#\1YB>!^8DP/[4S/]^> M1][S>-B;]/B9T.-GI,?/A!X_(SU^)O3X&>GQ,Z''STB/GPD]?D9Z_$SH\3/2 MXV="CY^1'C\3>OR,]/B9T.-GI,?/A!X_(SU^)O3X&>GQ,Z''STB/GPD]?D9Z M_$SH\3/2XV="CY^1'C\3>OR,]/B9T.-GI,?/A!X_(SU^)O3X&>GQ,Z''STB/ MGPD]?D9Z_$SH\3/2XV="CY^1'C\3>OR,]/B9T.-GI,?/A!X_(_U5)O17&>GC M,*&/P\A^L0G[Q4;VI4S8ES)2_S:A_FVDSF9"G<W(_;P)]_/S*8B\Y_&P-[EO M2,)]0R+KDR2L3Q+Y'$S"YV`BS">!^4283P+SB3"?!.8383X)S"?"?!*83X3Y M)#"?"/-)8#X3YK/`?";,9X'Y3)C/`O.9,)\%YC-A/ O,9\)\%IC/A/DL,)\) M\UE /A/FL\!\)LQG ?E,F,\"\QUAOA.8[PCSG<!\1YCO!.8[PGPG,-\1YCN! M^8XPWPG,=X3Y3F"^(\QW`O,=8;X3F.\(\YW`?$>8[P3F>\)\+S#?$^9[ ?F> M,-\+S/>$^5Y OB?,]P+S/6&^%YCO"?.]P'Q/F.\%YGO"?"\PWQ/F>X'YGC#? M"\P/A/E!8'X S`\"\P-A?A"8'PCS \#\0) ?!.8'POP ,#\0Y >!^8$P/PC, M#X3Y06!^(,P/`O,#87X0F!\)\Z/`_$B8'P7F1\+\*#`_$N9' ?F1,#\*S(^$ M^5% ?B3,CP+S(V%^%) ?"?.CP/Q(F!\%YD?"_" P/Q'F)X'YB3`_"<Q/A/E) M8'XBS$\"\Q-A?A*8GPCSD\#\1)B?!.8GPOPD,#\1YB>!^8DP/PG,3X3Y*<S\ MN_O#XT_K'U'X[(WC<6^TAX[C<6^TAX[C<6_4-X/C<6_4-X/C<6_4-X/C<6_4 M-X/C3N_+X6YWLR_^C V.MWBOWV&,XRW>ZW<8X[C?^[1[N+[HA?<ZWN2]^LTM M'&_R7OWF%H[[O`\/;Y\NA_OB/,'Q%N_U/,'Q%N_U/,'Q%N_UNZYQO,5[_:YK M'&_Q7K_K&L=]W ^'A_WA\>Y88 ?'G=[WN\>WUS-P[ WC<6_T?8GC#=[ -RUP MO,$;_*8%CC=X W?GXWB#-WA'-XXW>(-W=.-X S=X1S>.-WB#=W3C>(,W>$<W MCC=X W=TXWB#-WA'-X['O=$Z%L<;O`GS)C!OA'D3F#?"O`G,&V'>!.:-,&\" M\T:8-X%Y(\R;P#RZE\+QN#>ZE\+QN#>ZE\+QN#>ZE\+QN#=Z! ''X][H&00< MCWNC9Q!PW.E]?G=Y>'>^_F7.%V\8;_)>W4OA>)/WZEX*QYN\5[]?C.--WJO? M+\;Q)N_5[Q?C>)/WZO>+<;S)>_7[Q3 >\%[=%E]YK^(-WNA['L9;O-?W\SC> MY(V97\6;O#'SJWB3-V9^%6_RQLROXDW>F/E5O,D;,[^*-WECYE?Q)F_,_"K> MY+WZS7(<;_)>_68YCK=XK^ML.-[D39C?"LQO"?-; ?DM87XK,+\ES&\%YK>$ M^:W`_)8POQ68WQ+FMP+S6\+\5F!^2YC?"LQO"?-; ?EU_1O'F[P)\R8P;X1Y M$Y WPKP)S!MAW 3FC3!O`O-&F#>!>2/,F\"\$>9-8-X(\R8P;X1Y$YA?[TOA M>),W83X)S"?"?!*83X3Y)#"?"/-)8#X1YI/`?"+,)X'Y1)A/`O.),)\$YA-A M/ G,)\)\$IA?[Q?C>),W83X+S&?"?!:8SX3Y+#"?"?-98#X3YK/`?";,9X'Y M3)C/`O.9,)\%YC-A/ O,9\)\%IA?]W' >),W8;X3F.\(\YW`?$>8[P3F.\)\ M)S#?$>8[ ?F.,-\)S'>$^4Y OB/,=P+S'6&^$YCO"/.=P'Q/F.\%YGO"?"\P MWQ/F>X'YGC#?"\SWA/E>8+XGS/<"\SUAOA>8[PGSO<!\3YCO!>9[PGPO,-\3 MYGN!^8$P/PC,#X3Y06!^(,P/`O,#87X0F!\(\X/`_$"8'P3F!\+\(#`_$.8' M ?F!,#\(S`^$^4% ?B#,#P+S(V%^%) ?"?.CP/Q(F!\%YD?"_" P/Q+F1X'Y MD3`_"LR/A/E18'XDS(\"\R-A?A28'PGSH\#\2) ?!>8GPOPD,#\1YB>!^8DP M/PG,3X3Y26!^(LQ/`O,387X2F)\(\Y/`_$28GP3F)\+\)#`_$>8G ?F),#^U M,X_Z[6&\Q9OT^)G0XV>DQ\^$'C\C/7XF]/ 9Z?$SH<?/2(^?"3U^1GK\3.CQ M,]+C9T*/GY$>/Q-Z_(ST^)G0XV>DQ\^$'C\C/7XF]/ 9Z?$SH<?/2(^?"3U^ M1GK\3.CQ,]+C9T*/GY$>/Q-Z_(ST^)G0XV>DQ\^$'C\C/7XF]/ 9Z?$SH<?/ M2(^?"3U^1GK\3.CQ,]+C9T*/GY$>/Q-Z_(ST^)G0XV>DQ\^$'C\C/7XF]/ 9 MZ?$SH<?/2(^?"3U^1GK\3.CQ,]+C9T*/GY$>/Q-Z_(ST^)G0XV>DQ\^$'C\C M/7XF]/ 9Z?$SH<?/2(^?"3U^1GK\3.CQ,]+C9T*/GY$>/Q-Z_(ST^)G0XV>D MQ\^$'C\C/7XF]/ 9Z?$SH<?/2(^?"3U^1GK\3.CQ,]+C9T*/GY$>/Q-Z_(ST M^)G0XV>DQ\^$'C\C/7XF]/ 9Z?$SH<?/2(^?"3U^1GK\3.CQ,]+C9T*/GY$> M/Q-Z_(ST^)G0XV>DQ\^$'C\C/7XF]/ 9Z?$SH<?/2(^?"3U^1GK\3.CQ,]+C M9T*/GY$>/Q-Z_(ST^)G0XV>DQ\^$'C\C/7XF]/ 9Z?$SH<?/2(^?"3U^1GK\ M3.CQ,]+C9T*/GY$>/Q-Z_(ST^)G0XV>DQ\^$'C\C/7XF]/ 9Z?$SH<?/2(^? M"3U^1GK\3.CQ,]+C9T*/GY$>/Q-Z_(ST^)G0XV>DQ\^$'C\C/7XF]/ 9Z?$S MH<?/2(^?"3U^1GK\3.CQ,]+C9T*/GY$>/Q-Z_(ST^)G0XV>DQ\^$'C\C/7XF M]/ 9Z?$SH<?/2(^?"3U^1GK\3.CQ,](79D)?&'HG(XRW>)/^DR3TGR2RSYV$ M?>Y$]M.2L)^62-T^"77[1.J#2: /)E*'2$(=(I'[G23<[R2RKDK"NBJ1S^\D M?'XGPGP2F$?O2H7Q%F_"?!:8SX3Y+#"?"?-98#X3YK/`?";,9X'Y3)C/`O.9 M,)\%YC-A/ O,9\)\%IC/A/DL,(_>80SC+=Z$^4Y OB/,=P+S'6&^$YCO"/.= MP'Q'F.\$YCO"?"<PWQ'F.X'YCC#?"<QWA/E.8+XCS'<"\^C=XC#>XDV8[P7F M>\)\+S#?$^9[ ?F>,-\+S/>$^5Y OB?,]P+S/6&^%YCO"?.]P'Q/F.\%YGO" M?"\PCW[G`\9;O`GS \#\0) ?!.8'POP ,#\0Y >!^8$P/PC,#X3Y06!^(,P/ M`O,#87X0F!\(\X/`_$"8'P3FT>_OP'B+-V%^%) ?"?.CP/Q(F!\%YD?"_" P M/Q+F1X'YD3`_"LR/A/E18'XDS(\"\R-A?A28'PGSH\`\^ETL&&_Q)LQ/`O,3 M87X2F)\(\Y/`_$28GP3F)\+\)#`_$>8G ?F),#\)S$^$^4E ?B+,3P+S$V%^ MBC+_\?.A\/<O83SN#7__$L;CWO!W]F`\[ U_XPS&X][P-\Y /.X-?^,,QN/> M\#?.8-SG_:P^[^[*OQ>-XT[OFX>']?2>><-XV'M+O+>"MQ%O$[P3\4Z"=R;> M6?#NB'<G>/?$NQ>\!^(]"-XC\1X%[XEX3V'O]Y?=Z9<5>2_>,-[ #7[C#,=] MWN_WIW>'U4\/OGCCN-/[]/;\^%-Y3'#<ZWV\N5U_TLV\4;S!&XPWCC=X W?9 MX'B#-^A3PO$&;]`/ >,^[_/^].'Y^`]7V?KLC>-.[W>?%.7O2QP/>\/O2QR/ M>Z-U+(['O=$Z%L?CWF =B^-Q;[2.Q?&X-UK'XGC<&ZUC<3SNC=:Q.![W1K_5 MB^-Q;_1;O3 >]T:_U8OC86^XCL7QN#=AW 3FC3!O`O-&F#>!>2/,F\"\$>9- M8-X(\R8P;X1Y$Y WPKP)S!MAW 3FC3!O`O/P_A+'X]Z$^20PGPCS26`^$>:3 MP'PBS">!^4283P+SB3"?!.8383X)S"?"?!*83X3Y)#"?"/-)8![6?7`\[DV8 MSP+SF3"?!>8S83X+S&?"?!:8SX3Y+#"?"?-98#X3YK/`?";,9X'Y3)C/`O.9 M,)\%YF$]%L?CWH3Y3F"^(\QW`O,=8;X3F.\(\YW`?$>8[P3F.\)\)S#?$>8[ M ?F.,-\)S'>$^4Y OB/,=P+S<)\$Q^/>A/E>8+XGS/<"\SUAOA>8[PGSO<!\ M3YCO!>9[PGPO,-\3YGN!^9XPWPO,]X3Y7F"^)\SW`O-P_Q+'X]Z$^4% 'NZ- MXGC8&^Z-XKC3^_#P_G9WV17W=V"\R7OUG 4<;_)>O6<!QYW>3V_.#V]/Q7U7 M'&_Q7O</XGB+][I_$,=]WD^G^^I>-(ZW>*_'!,=;O-=C N,MWNN>2AQWYG)W MMS_>?"S/01AWG_?#\;&\/X_C#=Y ?Q['6[SA'`3Q%F\X!T&\Q1O.01!O\89S M$,1;O-=]O3C>XKWNZ\7Q%N]U7R^.MWBO^WIQO,5[W=>+XRW>Z[Y>'&_P!GTS M.-[B39 /_ ;4\EC"?/"W9I;'$N:#OVFQ/)8P'WQW_O)8PGSP'=W+8PGSP7<! M+X\ES`??.;H\EC`??+?AXEC0%X;C#=Z +PS'&[S!^SAPO,$;//>/XPW>X/EB M'&_P!L\QXGB#-WA>"L?=WI?3[N:ZVW/N#>(^[_W#^\LO'VZ*ZU <;_%>?W[C MN,_[P^E\OMFM%L&?O7&\Q7M]WCC>XKW^WL'Q%N_U]PZ.MWBOOW=PW.?]\_[- MS;M]>7[C>)/WJL:!XTW>JQH'CC=YK]XEB>--WJMW2>)XD_?J_;$XWN2]>G\L MCC=YK]X?B^--WJOWQ^)XD_?J_;$X[O.^??/V_>GXOO 9B^,MWNO/6!QO\5Y_ MQN)XB_?Z,Q;'6[S7G[$XWN*]7MOC>(OW>FV/XRW>Z[4]CK=XK^_G<;S%>WT_ MC^-NYC_\O"H/+I '\; WVAO%\; WVAO%\; WVAO%\; WVAO%\; WVAO%\9+W MV^-\4Z[PSV?OW]5%L^?_<F9V+V;_4'_YQ==_W#S_ER^_^.;K/[_>G)X>'P^/ M;S=?O_[V6WO]EV\W[^_WN_-^\_/N<'GUZM677]P<[^[L^'"WN?EDL9BV_WI\ MNKQ_NKRZ?+P4=+]-P7^="2OG6O+XP\JDJ`Q(UZ=6E)I?FOS2[)=V?FGOEPY^ MZ>B73FZI/P.!*1!Q]>=UZ\_KUI_7K3^O6W]>M_Z\;OUYW?KSZA]6\^?5_'FU MP`GX\VK^O)H_K^;/J_GS:OZ\^ ?`?_W^R_=?O?_B_=?NGM+N">6?T/[Y[)_. M_MGLG\S^N>R?ROZ9[)_(YDZF>Y"2.YG)G<SD3F;RGZ<[F<F=S.1.9G(G,[F3 MF=S)=%]Z=B<SNY.9W<G,[F1F_Q6YDYG=R<SN9&9W,K,[F>X+ZMS)[-S)[-S) M[-S)[-S)[/S7[DYFYTYFYTYFYTZF^S1[=S)[=S)[=S)[=S)[=S)[=S)[_RBY MD]F[D]F[D^G^XX,[F8,[F8,[F8,[F8,[F8,[F8,[F8-_/-W)'-S)=%N.[F2. M[F2.[F2.[F2.[F2.[F2.[F2.[F2._I%W)],O="=S<B=S<B=S<B=S<B=S<B=S M<B=S<B=S<B=SJN;H[G!_V2^;X0O*X^YP>Q\55G.Y$/HM_9[5^;%05N?'0EF= M'PME=7XLE-7YL5!6Y\=<Z;YT]Y6[+]Q]W>[+=E]U%8JYL,K$<\ [U>?*^KQ< M*`.F`==ZSA?2>M87TGK>%])ZYA?2>NX7TGKV%])Z_A=2_PSP#VN]_K:4^O-: MK\`MI?Z\UFMP2ZD_K_4JW%+JSVN]#K>4^O/J'ZMZ*6XI]>>U7HQ;2 /GZL]K MO1ZWE/KS6J_(+:7^O-9K< NI?P#J5;FEU)_7>EUN*?7GM5Z96TK]>:W7YI92 M?U[KU;FEU)]7_U75"W1+J3^O]1+=4NK/:[U(MY0&1L"?UWJ=;BGUY[5>J5M( M_:=:K]4MI?Z\UJMU2ZD_K_5ZW5+JSVN]8K>4^O-:K]DMI?Z\^O]^O6RWE/KS M6B_<+:7^O-9+=PNI?U3K WKCO1N9">O#-!?Z+?V>]9&?*^L#/U?6QWVNK.,T M5]9IFBOKDWFNK&=]KG1GW3V<Y`9DKG0GD]Q^S)7N9)*;C[G2G4QRZS%7NI-) M;CSF2G<RW8-$[CKF2G<RR3W'7.D_3W<RR0W'7.E.)KG=F"O=R20W&S.E^]+) MK<9,Z1XC]Q"Y1\ ]0/7QN=][O[#FROH<7B #I '7.AH+:9V-A;0^0Q;2>N87 MTGKN%])Z]A?2>OX74O\,\`\K^?9:2/UY]>?*GRI_IOR)\N?)GZ9JELZ'NX>+ M!].YL#KN<V$U[>?+\;3_Z/OC"VGUSS\]_O3X\Z/'=*&L>EY./^VN?NW&H_1[ M5L=IH:Q.Y(6R.I$7RNI$7BBK$_E9>7/TCM*+LCI*'W[=Q#S7)+N;R^'#[9NW MQ3^\*8O!LR$5<?6:KL75R[H65_-_+:Y. 6MQ=19<BZL3X5I<G0O7XNKGVK6X M^M%V+:Y^NEV)(\-<_QZZ%D>R7;^7NA9'LEV_H[H61[)=OZ^Z%D>R7;^[NA9' MLAT9N?IMUK4XDNWZS=:U.'3.D6S7[[JNQ9%LU^^]KL61;-?OP*[$D<&HWX== MBR/9KF_[7(LCV:YO_5R+(]FN;_]<BR/9KF\!78LCV8Y<7WTCZ$H<&8O(4$1& M _$^6;Y2 6?ED_D%RV?QR]:/HU?M'P6OVAYDE^T/&\O6IZW%RW/VXNVW ?Y M;O=X_<99E[3>";F0UELA%])Z+^3QX6;GNC%;*.MG.E?63W2NK)[G[>'!=;\Q MTU7/<::KGN%,YSV_ZKR?Z:IS?J:KSO?;P_G]_J-O9&9*,C8S)1F=F;(^/L>; MYZCK/.?*^GG.E?7SG"O]YUG/Y%Q9S^5<6<WF_N.G$?6,TD)9':6E$MPS;XIB M]#Z%HGB= (IXG8.*>)V&BGB=B8IXG8R*>/U=4A&OOTPJXO6W25G\^ZM0G.)( MNL&=;44<23>XLZV((^D&=[85<23=X,ZV(HZD&]S9EL61D8L,7&3<(L,6&;7( MH)$Q^[5T6"H*8B&9[3.AWQ*\$:8H#?Q]PMI<2N;+7$JFRUQ*9LM<2B;+7$KF MREQ*ILI<ZIXI[.MMKO3G->+JSRO[PIQ+_7EE7Y9SJ3^O[(MR+O7GE7U)SJ3^ M867?CW.I/Z_LNW$N]>>5?2_.I?Z\LN_$N=2?5_9].)?Z\^H?*U#C+4K]>07U MW:(T<*[^O(+*;E'JSRNHZA:E_KR"BFY)ZA\`4,TM2OUY!97<HM2?5U#%+4K] M>045W*+4GU=0O2U*_7GU7Q6HVQ:E_KR"!OZBU)]7T,!?E`9&P)]7T,!?E/KS M"AKX2U+_J8(&_J+4GU?0P%^4^O,*&OB+4G]>00-_4>K/*VC +TK]>?7_?=#` M7Y3Z\PH:^(M2?UX'?U[!RS>*4G]>P>LWBE)_7L$+.$I2OREX!4=1ZL\K>`E' M4>K/*W -1U'JSRMX$4=1ZL\K>!5'4>K/:T#ISRMX'4=1ZL\K>"%'4>K/*W E M1U'JSRMX*4=1ZL\K>"U'0>H>5?_=J_D+4^8O3)F_,&7^PI3Y"U/F+TR9OS!E M_L*4^0M3YB],^4L-YB],F;\P9?X*BOEORLU_GV?^6P?SKT;-O\`Q_W>F^3^& M_74A"Z`=F"V!$_"GU9]5?U+].?6GU)]1=T+= ^2O1_G+4?YJE+\8Y:]%^4M1 M_DJ4OQ#EKT/YRU#N2_<7H?PU*'\)RE^!\A> _/4G?_G)7WWR%Y_\M2?W!?DK M3_["D[_NY"\[^:M._J*3O^8$2TZ;DACELRA&*2V)T?D6M2BQ17'AET.P&*6W M*$89+HI1DHMBE.>B.#1TD6S#4E11',EVY"Q 0:HHCF0;%J6*XDBV86&J*(YD M&Q:GBN+0.$>R#4M4)7'$&):IBN)(MF&IJBB.9!N6JXKB2+9AR:HHCF0;EJV* MXDBV0]I(MF'YJBB.9!N6L(KB2+9A&:LHCF0;EK**XDBV83EK*7YW?WC\J=C+ M6A'C%!;$.(4%,4YA00Q26%""_!64('ESY>5PM[O9NQYO76KK3[<NM6#$KK2G MW8/_)&9B?A8S<?TT# ]OGRZ'\ELERMKZ22RUD7,`<Z>HK4^=I;8^>1X.#_O# MX]W1-1`/][M'W\/1<R7$K:2%()?$(6<(<DD,02Z)X6=Q20P_BTMB^%E<$L// MXI(8?A:7Q/"SN"".##.L0A;%D6S#2F11',DVK$<6Q9%LPZID21PYY< 91TXX M<KZ1R1F9FW1JGM]='MZ=74^ 76FK3[U<::M/!UUIJ\\'76FK3PA=::O/"%UI MJT\)76FKSSC^JG6]G&FAK'^)+J7DFV:I#8E#9U'_+K\2U[_,K\3U;_,K,?DZ M7XKKR\$K,4"T+`:,EL4`TJ(XDI/0U( Y1[*-5 ME<23;:+50%D>RC58+97$D MVVBU4!1'AAFM%LKB2+;1:J$LCF0;K1;*XDBVT6JA+(YD&^UDEL61;$=FUI MEL61;*.-S;(X=,Z1;*,=SK(XDFVTSUD61[*-=CN+XLA H#W/LCB2;;3S619' MLHWV/\OB2+;1+FA9',DVV LMBR/9CEP?VA0MBR/91ENC97$DVVB#M"P.C48D MVVBGM"R.9!OME!;%D5-&.Z5E<23;:*>T+(YD&^V4EL61;*.=TK(XDFVT4UH6 M1[(=.0NT4UH61[*-=DK+XDBVATBVT4YI61S)-MHI+8LCV48[I45QQ!CME);% MD6RCG=*R.))MM%-:%D>RC79*R^)(MM%.:5D<R79(&\DVVBDMBR/91CNE97$D MVVBGM"R.9!OME);%D6RCG=*2.##*D;MMV/Y?% <F!GP$H"P.3`SX&$!9') 8 M\%&`LC P,>#C`&5Q9&)$<A(IN\''`LKB2+8CY03X<$!9',EV9"T,'Q$HBR/9 MCGR01^I=\%&!LCB2[=AI1+(=*;M9I.QFD;*;1<IN%BF[6:3L%AJY2-G-(F4W MBY3=+%)VLTC9S2)E-XN4W2Q2=K-(V<TB9;?0U(^4W2Q2=K-(V<TB93>+E-TL M4G:S2-G-(F4WBY3=+%)V"WUV1<IN%BF[6:3L9I&RFT7*;A8INUFD[&:1LIM% MRFX6*;N%OGPB93>+E-TL4G:S2-G-(F4WBY3=+%)VLTC9S2)E-XN4W4*KATC9 MS2)E-XN4W2Q2=K-(V<TB93>+E-TL4G:S2-G-(F6WT/(O4G:S2-G-(F4WBY3= M+%)VBRQO`^<06=Q&UK:1I6UD91M9V$;6M?4?Y5A*`W!$UK21)6U %"(+VLAZ M-K*<C:QF(XO9R%HVLI2-K&0C"]G(.C9P:9%5;&01&UG#1I:PD15L9`$;6;]& MEJ^1U6MD\1HXW<C2-;)RC2Q<(^O6R+(ULFJ-+%HC:];(DC6R8 V<0F2]&EFN M1E:KD<5J9*T:6:I&5JJ1A6IDG1I9I 9L(XO4R!HULD2-K%`C"]3(MG!D5SBR M*1S9$XYL"4>D 11']H,CV\&1W>#(9G!D+SBR%1S9"8YL!--]X(^?I2QK+TJ6 MLQ<ER]B+DN7K1<FR]:)DN7I1UC/U'#OO[GP/IQYO*C\951#6QW,FK`_G3% ? MS9FP/I S87TL9T(RE"_"^HR?">O3?2:LS_7C^\ON](LO-W-I/3OO]Z=WA\J3 M9`OMZ>VY]G#Z0GJ\J?PB=%%*3G8NK4^FA;0^G1;2^H0Z[T\?GN4?7!=V?O?T MK(D)Z]<_%_HM_9[U(9TKZR,Z5Y(!G2GKB,Z5=4;GRCJD<V6=TKFRCNE,Z1Y. MTHTP5[J32?H0YDIW,LDV[%SI3B;9_IDKW<DD9>>YTIU,]R"1>NQ<Z4XFJ<7. ME?[S=">35&'G2G<R20EVKG0GDY1?9TKWI9/2ZUSI3B8IN\Z5[F22DNM<Z4XF M*;?.E>YDDE+K7.E.ION"2)%UKG0GDQ18YTIW,DEQ=:[T7[L[F:2L.E>ZDTE* MJC.E^S1).76N=">3E%+G2G<R21EUKG0GDY10YTIW,DGY=*YT)]/]QTGA=*9T MGR4YR</#^]O=9>=;R"_%9#HMQ61&/;TYUW[TNJPE)['0UL_AZ73OO -<:NOG ML-1&SH&PM;O;'V_*O]Y\Y?MP?(Q+Z97-I!';B"\=L9FV/F)+;?WS:*FM?R(M MM?7/I*6V_L&PU-:)7VKKT"^T >$EMV=+;2#%Y!9MJ0VDF-RF+;6!%)-;M:4V MD.+`I06N+'!A >L*7%9 XM)Y>SGM;GR5M_W#^\LO'VX:M/69^^%T/M_L?)^E M2VW$MT[$4EN?-DMM?=[\O']S\V[O'.`K<?WJKL3UR[L2UZ_O2ARZP#H:5^(Z M'%?B.AY7XCH 5^(Z(K=OWKX_'=^[$KC4UO.WU-;3M]36L[?4UI.WU-9SM]36 M4[?4UC.WU-83M]36\_:<Y`\_>['[K*3,?592X#XK*6V?E12US\IZKMX>ZV/^ MR>&,%-]\_>?7F\N[_>;-[G+S;O-N=][<'!_>W^\O^]M7FU^AV<P.N#N>-J?] M^>G^<G[UY1=_>OW]Z\W^\?;++[YZ/-X?WOQN]_']Z7+9GR^;?][\\,-W?WSU MG]_]^^;Q^.G I\?;S>%Q<_-T.NT?+YO;PVE_<SF>?GGV^NI7G_\/4$L!`A0` M%````` `SH:!-/ST]K8K+0``168"``L``````````0` `````````$,R3U1% <4U0N0D%44$L%! `````!``$`.0```%0M```````` ` end Apr 01 2006
I think that Walter use an char[10] local var as filename with out path near the fullname[260(MAXPATH+x?)] with path, and then caused an null char missed between these two strings when filename more than 15bytes. [aaaabbbbccccdddd],#0,#0,#0(....) before full path placed [aaaabbbbccccddddc:\xxxxxx\aaaabbbbccccdddd] overflowed. only when the last d is an null char then it works or crash in ntdll.dll Feb 05 2007
I modified an excutable to expand filename to 255 bytes based on 1.00.195 version some hours ago. I have tested it with minilzo_icl91_coff.obj witch longer than 15bytes and it works. I was noticed other bugs fixed by Walter in this posts hxxp://www.digitalmars.com/d/archives/c++/windows/32-bits/85.html how can I get that fixed version newer then 8.40 cd's one? thx. banxian Feb 05 2007
I was forget to fix retn codes in the middle of subroutine. you can using hex editor to modify $AE38 from "81C4 18040000" to "81C4 08050000". fixed exe attached. sorry for the mistake I made in the early morning. Feb 06 2007
|