]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/disk/geli.c (grub_util_get_geli_uuid): Close handle after
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Tue, 15 Oct 2013 15:55:20 +0000 (17:55 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Tue, 15 Oct 2013 15:55:20 +0000 (17:55 +0200)
read.

ChangeLog
grub-core/disk/geli.c

index 4122920dde2bc142824f7001efd079eb7c973672..f71c5ef1940a2283349fbd9e60ef6011087125a6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-10-15  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/disk/geli.c (grub_util_get_geli_uuid): Close handle after
+       read.
+
 2013-10-15  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/disk/cryptodisk.c: Use grub_util_fd_strerror instead
index 3e029402ad4d7bc4fd92c408cd1ee1fdfb71bd52..c4864dc1b30dd0e25d6651646935ada405599984 100644 (file)
@@ -198,19 +198,13 @@ make_uuid (const struct grub_geli_phdr *header,
 
 #ifdef GRUB_UTIL
 
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
 #include <grub/emu/hostdisk.h>
-#include <unistd.h>
-#include <string.h>
 #include <grub/emu/misc.h>
 
 char *
 grub_util_get_geli_uuid (const char *dev)
 {
-  grub_util_fd_t fd = grub_util_fd_open (dev, GRUB_UTIL_FD_O_RDONLY);
+  grub_util_fd_t fd;
   grub_uint64_t s;
   unsigned log_secsize;
   grub_uint8_t hdr[512];
@@ -218,6 +212,8 @@ grub_util_get_geli_uuid (const char *dev)
   char *uuid; 
   gcry_err_code_t err;
 
+  fd = grub_util_fd_open (dev, GRUB_UTIL_FD_O_RDONLY);
+
   if (!GRUB_UTIL_FD_IS_VALID (fd))
     return NULL;
 
@@ -228,6 +224,8 @@ grub_util_get_geli_uuid (const char *dev)
   uuid = xmalloc (GRUB_MD_SHA256->mdlen * 2 + 1);
   if (grub_util_fd_read (fd, (void *) &hdr, 512) < 0)
     grub_util_error ("%s", _("couldn't read ELI metadata"));
+
+  grub_util_fd_close (fd);
          
   COMPILE_TIME_ASSERT (sizeof (header) <= 512);
   header = (void *) &hdr;