Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-9708

missing SHGetPrivateProfileSection in shlwapi leads to usermode crash of explorer.exe from WinXP if used as standard shell

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 0.4.0
    • Win32SS
    • None
    • VirtualBox, trunk

    Description

      I tried to replace the explorer.exe from ReactOS with the version from Windows XP. After the assert shown in CORE-9699 I get following.

      Why is there an exception thrown instead of simply print the message?
      If I read the documention of SHGetPrivateProfileSection right, a simple return 0 (and perhaps setting the first byte of the buffer to \0 as well) should be enough.
      That should be interpreted as "no strings stored" by the calling application. I think that wine have these functions as well, so they could be imported from them, too.

      (../../win32ss/gdi/ntgdi/gdiobj.c:1169) GreDeleteObject: Trying to delete invalid object 0005008F
      ERROR:  WmiSetMark at ../../ntoskrnl/wmi/wmidrv.c:442 is UNIMPLEMENTED!
       
      Entered debugger on embedded INT3 at 0x0008:0x80961bc2.
      kdb:> cont
      (../../lib/rtl/actctx.c:1407) Unsupported yet language attribute ((null))
      fixme:(../../dll/win32/shlwapi/stopwatch.c:45) () stub!
      WARNING: calling stub SHGetPrivateProfileSection()
      (../../dll/win32/kernel32/client/except.c:388) Missing function in   : shlwapi.dll
      (../../dll/win32/kernel32/client/except.c:389) with the functionname : SHGetPrivateProfileSection
      Unhandled exception
      ExceptionCode:    80000100
      CS:EIP 1b:77d862cd
      DS 23 ES 23 FS 3b GS 0
      EAX: 0006fe68   EBX: 80000100   ECX: 0006fbf4
      EDX: 00000000   EBP: 0006fec0   ESI: 00000000   ESP: 0006fe5c
      EDI: 77d968e0   EFLAGS: 00000246
      Address:
         77d80000+62cd       C:\ReactOS\system32\kernel32.dll - dll/win32/kernel32/client/except.c:394 (RaiseException)
      Frames:
         77800000+2a04b      C:\ReactOS\system32\shlwapi.dll - ReactOS/output-MinGW-i386/reactos/dll/win32/shlwapi/shlwapi_stubs.c:934 (SHGetPrivateProfileSection)
          1000000+1a881      C:\ReactOS\explorer.exe
          1000000+1a5c7      C:\ReactOS\explorer.exe
         77d80000+fb95       C:\ReactOS\system32\kernel32.dll - dll/win32/kernel32/client/proc.c:478 (BaseProcessStartup)
      (../../win32ss/user/ntuser/desktop.c:535) err: ptiLastInput is CLEARED!!
      (../../win32ss/gdi/ntgdi/gdiobj.c:1169) GreDeleteObject: Trying to delete invalid object 06050093
      (../../base/services/umpnpmgr/umpnpmgr.c:3058) Installing: PCI\VEN_8086&DEV_2415&SUBSYS_00008086&REV_01\3&609b8881&05
      (../../win32ss/user/ntuser/desktop.c:535) err: ptiLastInput is CLEARED!!

      First documention of SHGetPrivateProfileSection:
      https://msdn.microsoft.com/en-us/library/windows/desktop/ms724348(v=vs.85).aspx

      Attachments

        Issue Links

          Activity

            People

              bug zilla Bug Zilla
              mifritscher mifritscher
              Votes:
              4 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: