mirror of
https://git.proxmox.com/git/efi-boot-shim
synced 2025-08-14 17:23:58 +00:00
Don't put the directory in the file path twice.
Sometimes when we're creating paths, the ImagePath can contain the directory name already. If that happens, don't add it in again. Signed-off-by: Peter Jones <pjones@redhat.com>
This commit is contained in:
parent
6e1bd3dcb7
commit
155a76bb86
3
shim.c
3
shim.c
@ -939,7 +939,8 @@ static EFI_STATUS generate_path(EFI_LOADED_IMAGE *li, CHAR16 *ImagePath,
|
|||||||
}
|
}
|
||||||
|
|
||||||
*PathName[0] = '\0';
|
*PathName[0] = '\0';
|
||||||
StrCat(*PathName, bootpath);
|
if (StrnCaseCmp(bootpath, ImagePath, StrLen(bootpath)))
|
||||||
|
StrCat(*PathName, bootpath);
|
||||||
StrCat(*PathName, ImagePath);
|
StrCat(*PathName, ImagePath);
|
||||||
|
|
||||||
*grubpath = FileDevicePath(device, *PathName);
|
*grubpath = FileDevicePath(device, *PathName);
|
||||||
|
19
ucs2.h
19
ucs2.h
@ -54,4 +54,23 @@ StrCaseCmp(CHAR16 *s0, CHAR16 *s1)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline INTN
|
||||||
|
__attribute__((unused))
|
||||||
|
StrnCaseCmp(CHAR16 *s0, CHAR16 *s1, int n)
|
||||||
|
{
|
||||||
|
CHAR16 c0, c1;
|
||||||
|
int x = 0;
|
||||||
|
while (n > x++) {
|
||||||
|
if (*s0 == L'\0' || *s1 == L'\0')
|
||||||
|
return *s1 - *s0;
|
||||||
|
c0 = (*s0 >= L'a' && *s0 <= L'z') ? *s0 - 32 : *s0;
|
||||||
|
c1 = (*s1 >= L'a' && *s1 <= L'z') ? *s1 - 32 : *s1;
|
||||||
|
if (c0 != c1)
|
||||||
|
return c1 - c0;
|
||||||
|
s0++;
|
||||||
|
s1++;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* SHIM_UCS2_H */
|
#endif /* SHIM_UCS2_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user