File efivar-fix-vars_del_variable.patch of Package efivar

From 734994cb0b66020277f9972baa9fa211a85aa582 Mon Sep 17 00:00:00 2001
From: Gary Ching-Pang Lin <glin@suse.com>
Date: Wed, 24 Jun 2015 17:51:44 +0800
Subject: [PATCH] Exclude the padded NULL when comparing the file size

In vars_del_variable(), this "if" statement always failed because
read_file() returned the actual file size +1.

if (rc < 0 || (buf_size != sizeof(efi_kernel_variable_64_t) &&
               buf_size != sizeof(efi_kernel_variable_32_t)))

Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
---
 src/vars.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/vars.c b/src/vars.c
index ca0236e..b0006e1 100644
--- a/src/vars.c
+++ b/src/vars.c
@@ -344,6 +344,7 @@ vars_del_variable(efi_guid_t guid, const char *name)
 		goto err;
 
 	rc = read_file(fd, &buf, &buf_size);
+	buf_size -= 1; /* read_file pads out 1 extra byte to NUL it */
 	if (rc < 0 || (buf_size != sizeof(efi_kernel_variable_64_t) &&
 		       buf_size != sizeof(efi_kernel_variable_32_t)))
 		goto err;
-- 
2.1.4

openSUSE Build Service is sponsored by