Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP4:GA
grub2.4793
0004-cryptodisk-strip-parenthesis-from-backing-...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0004-cryptodisk-strip-parenthesis-from-backing-device-nam.patch of Package grub2.4793
From c93d3e694713b8230fa2cf88414fabe005b56782 Mon Sep 17 00:00:00 2001 From: Andrei Borzenkov <arvidjaar@gmail.com> Date: Sun, 13 Sep 2015 20:12:31 +0300 Subject: [PATCH] cryptodisk: strip parenthesis from backing device name Otherwise subsequent disk open fails. Reported-By: Klemens Nanni <contact@autoboot.org> --- grub-core/disk/cryptodisk.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/grub-core/disk/cryptodisk.c b/grub-core/disk/cryptodisk.c index 82a3dcb..85d68e3 100644 --- a/grub-core/disk/cryptodisk.c +++ b/grub-core/disk/cryptodisk.c @@ -964,33 +964,43 @@ grub_cmd_cryptomount (grub_extcmd_context_t ctxt, int argc, char **args) grub_disk_t disk; grub_cryptodisk_t dev; char *diskname; - char *disklast; + char *disklast = NULL; + grub_size_t len; search_uuid = NULL; check_boot = state[2].set; diskname = args[0]; - if (diskname[0] == '(' && *(disklast = &diskname[grub_strlen (diskname) - 1]) == ')') + len = grub_strlen (diskname); + if (len && diskname[0] == '(' && diskname[len - 1] == ')') { + disklast = &diskname[len - 1]; *disklast = '\0'; - disk = grub_disk_open (diskname + 1); - *disklast = ')'; + diskname++; } - else - disk = grub_disk_open (diskname); + + disk = grub_disk_open (diskname); if (!disk) - return grub_errno; + { + if (disklast) + *disklast = ')'; + return grub_errno; + } dev = grub_cryptodisk_get_by_source_disk (disk); if (dev) { grub_dprintf ("cryptodisk", "already mounted as crypto%lu\n", dev->id); grub_disk_close (disk); + if (disklast) + *disklast = ')'; return GRUB_ERR_NONE; } - err = grub_cryptodisk_scan_device_real (args[0], disk); + err = grub_cryptodisk_scan_device_real (diskname, disk); grub_disk_close (disk); + if (disklast) + *disklast = ')'; return err; } -- 2.6.6
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor