Accepting request 311701 from home:arvidjaar:bnc:902982

- add 0001-grub-core-kern-efi-efi.c-Ensure-that-the-result-star.patch
  make sure firmware path starts with '/' (boo#902982)

OBS-URL: https://build.opensuse.org/request/show/311701
OBS-URL: https://build.opensuse.org/package/show/Base:System/grub2?expand=0&rev=166
This commit is contained in:
Michael Chang 2015-06-12 04:29:33 +00:00 committed by Git OBS Bridge
parent 47bb4fa7dc
commit de144dc272
3 changed files with 83 additions and 0 deletions

View File

@ -0,0 +1,75 @@
From 7e7293d745ef7c0a13d8cbf12f474843edfdd0ab Mon Sep 17 00:00:00 2001
From: Vladimir Serbinenko <phcoder@gmail.com>
Date: Sat, 18 Jan 2014 16:41:47 +0100
Subject: [PATCH] * grub-core/kern/efi/efi.c: Ensure that the result
starts with / and has no //.
---
ChangeLog | 5 +++++
grub-core/kern/efi/efi.c | 25 +++++++++++++++++--------
2 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c
index b253141..b9eb1ab 100644
--- a/grub-core/kern/efi/efi.c
+++ b/grub-core/kern/efi/efi.c
@@ -309,7 +309,7 @@ grub_efi_modules_addr (void)
char *
grub_efi_get_filename (grub_efi_device_path_t *dp0)
{
- char *name = 0, *p;
+ char *name = 0, *p, *pi;
grub_size_t filesize = 0;
grub_efi_device_path_t *dp;
@@ -328,7 +328,7 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0)
grub_efi_uint16_t len;
len = ((GRUB_EFI_DEVICE_PATH_LENGTH (dp) - 4)
/ sizeof (grub_efi_char16_t));
- filesize += GRUB_MAX_UTF8_PER_UTF16 * len + 1;
+ filesize += GRUB_MAX_UTF8_PER_UTF16 * len + 2;
}
dp = GRUB_EFI_NEXT_DEVICE_PATH (dp);
@@ -356,12 +356,12 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0)
grub_efi_file_path_device_path_t *fp;
grub_efi_uint16_t len;
- if (p != name)
- *p++ = '/';
+ *p++ = '/';
len = ((GRUB_EFI_DEVICE_PATH_LENGTH (dp) - 4)
/ sizeof (grub_efi_char16_t));
fp = (grub_efi_file_path_device_path_t *) dp;
+
p = (char *) grub_utf16_to_utf8 ((unsigned char *) p, fp->path_name, len);
}
@@ -370,10 +370,19 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0)
*p = '\0';
- /* EFI breaks paths with backslashes. */
- for (p = name; *p; p++)
- if (*p == '\\')
- *p = '/';
+ for (pi = name, p = name; *pi;)
+ {
+ /* EFI breaks paths with backslashes. */
+ if (*pi == '\\' || *pi == '/')
+ {
+ *p++ = '/';
+ while (*pi == '\\' || *pi == '/')
+ pi++;
+ continue;
+ }
+ *p++ = *pi++;
+ }
+ *p = '\0';
return name;
}
--
2.1.4

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Sun Jun 7 04:00:56 UTC 2015 - arvidjaar@gmail.com
- add 0001-grub-core-kern-efi-efi.c-Ensure-that-the-result-star.patch
make sure firmware path starts with '/' (boo#902982)
-------------------------------------------------------------------
Fri Jun 5 03:46:33 UTC 2015 - mchang@suse.com

View File

@ -151,6 +151,7 @@ Source1000: PATCH_POLICY
Patch1: rename-grub-info-file-to-grub2.patch
Patch2: grub2-linux.patch
Patch3: use-grub2-as-a-package-name.patch
Patch4: 0001-grub-core-kern-efi-efi.c-Ensure-that-the-result-star.patch
Patch6: grub2-iterate-and-hook-for-extended-partition.patch
Patch8: grub2-ppc-terminfo.patch
Patch9: grub2-GRUB_CMDLINE_LINUX_RECOVERY-for-recovery-mode.patch
@ -397,6 +398,7 @@ mv docs/grub.texi docs/grub2.texi
mv po/grub.pot po/%{name}.pot
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch6 -p1
%patch8 -p1
%patch9 -p1