update for HEAD-2003091401
[reactos.git] / lib / ntdll / ldr / res.c
index f3f7f35..8300088 100644 (file)
@@ -88,8 +88,8 @@ LdrFindResource_U(PVOID BaseAddress,
             for (; EntryCount--; ResEntry++) {
                 /* Scan entries for equal name */
                 if (ResEntry->Name & 0x80000000) {
-                    ws = (PWCHAR)((ULONG)ResDir + (ResEntry->Name & 0x7FFFFFFF));
-                    if (!wcsncmp((PWCHAR)Id, ws + 1, *ws) &&
+                    ws = (PWCHAR)((ULONG)ResBase + (ResEntry->Name & 0x7FFFFFFF));
+                    if (!_wcsnicmp((PWCHAR)Id, ws + 1, *ws) &&
                           wcslen((PWCHAR)Id) == (int)*ws) {
                         goto found;
                     }
@@ -150,6 +150,9 @@ found:;
 }
 
 
+/*
+ * @implemented
+ */
 NTSTATUS STDCALL
 LdrAccessResource(IN  PVOID BaseAddress,
                   IN  PIMAGE_RESOURCE_DATA_ENTRY ResourceDataEntry,
@@ -164,6 +167,9 @@ LdrAccessResource(IN  PVOID BaseAddress,
     ULONG Offset = 0;
     ULONG Data;
 
+    if(!ResourceDataEntry)
+        return STATUS_RESOURCE_DATA_NOT_FOUND;
+
     Data = (ULONG)RtlImageDirectoryEntryToData(BaseAddress,
                            TRUE, IMAGE_DIRECTORY_ENTRY_RESOURCE, &DataSize);
     if (Data == 0) {
@@ -193,6 +199,9 @@ LdrAccessResource(IN  PVOID BaseAddress,
 }
 
 
+/*
+ * @implemented
+ */
 NTSTATUS STDCALL
 LdrFindResourceDirectory_U(IN PVOID BaseAddress,
                            WCHAR** name,