Received: from list by lists.gnu.org with archive (Exim 4.71) id 1VE2U0-0006x5-Js for mharc-grub-devel@gnu.org; Mon, 26 Aug 2013 15:29:48 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33838) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VE2To-0006t9-CM for grub-devel@gnu.org; Mon, 26 Aug 2013 15:29:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VE2Te-0005Vi-Bt for grub-devel@gnu.org; Mon, 26 Aug 2013 15:29:36 -0400 Received: from mail-gh0-x24a.google.com ([2607:f8b0:4002:c05::24a]:61248) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VE2Te-0005VV-6k for grub-devel@gnu.org; Mon, 26 Aug 2013 15:29:26 -0400 Received: by mail-gh0-f202.google.com with SMTP id g24so384506ghb.5 for ; Mon, 26 Aug 2013 12:29:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=/qRf5nVIGCDTKq8cMHKikNu7iODHVLPPmvJV1EmY9dc=; b=Pf6F8KEiWlJvXOMnB7NxuU3kFp6ljjixdyfSyaR6cGIB9O4BHJjnj7l2BBLX/1JjuH RBoOYkxbwzWuti+lz5IRP3LllzJvv2/oHmMt1FZA5CSx/oj0wvvAV81t4QPLmE5PUJtU xHqGO3M17jzGsjP0L5++h+VRc7KvRhzE8jD8SDc9RRYtdijkjRs1kguMP2zFYa/boaTP flCBMZZAdq9GCygQHY3tufKgCQasT+k+//YZbdnM+m0Eej3yhlR5iIluw/e/uZO+X+1W Xga/Epo6XuRkzk9hYvP+CyeJV3MeM5o4UT0yndszYg3y+AJ++UyTJGTdNchnZWPpJb8W qqwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=/qRf5nVIGCDTKq8cMHKikNu7iODHVLPPmvJV1EmY9dc=; b=JvAaC0lwXzHe2g/y7sub8ZLv9YJWEYcYBuSDCsXUKVjP/4TLUD2f4X8O3n6sDeCPnv 6o2YOBbvS7weLd+gK4oRul0QuZpfCliTxcwtNXB8KYiRVIlWqpFf5wBvDqBaf0rxd6Y8 KWWl3WBZnCunTPuc+qlpfQg2F4/snJ2qDWAENRyLP90FfKbOlA4ARj1FZ/BgCQtVu6rG VmnSJEtNh9LXH1D5O2Ch+bgXCo5R56e6GDAqe0OsI7AjZ+YuH2cLGWJ5y3oLHAb0KW/H LTX0o6yOL6g3R9O++4LNu5I7jKb1DkyLQgO76y980VM7jzLF1mvP4IQTtv0i9kN/8jjG JyYw== X-Gm-Message-State: ALoCoQlTwstY5D/lB13oD9D6qa2GN7GS5J6u8DLyXKbwrAIyH+wX9Asb5IwYAU1B7o8pkf0HoMNrVjUGEAjgafy6tch5KxPxPXpwCAhTrL5ZurDDnk4VPS+T529Dc3uQUN4xc57iHdSoqQZi88vuhYyBTi9U7cGVsg8Vb9VMS42YZWTQoDIrD0wkmUH628MZjuxv38T3mw6y8GWvhJkZCB+/NuyENui7K7D2B5cC3gTIdgeY6NyzsFo= X-Received: by 10.236.54.68 with SMTP id h44mr5738416yhc.21.1377545365798; Mon, 26 Aug 2013 12:29:25 -0700 (PDT) Received: from corp2gmr1-1.hot.corp.google.com (corp2gmr1-1.hot.corp.google.com [172.24.189.92]) by gmr-mx.google.com with ESMTPS id z29si1028765yhd.3.1969.12.31.16.00.00 (version=TLSv1.1 cipher=AES128-SHA bits=128/128); Mon, 26 Aug 2013 12:29:25 -0700 (PDT) Received: from yinz.mtv.corp.google.com (yinz.mtv.corp.google.com [100.96.9.163]) by corp2gmr1-1.hot.corp.google.com (Postfix) with ESMTP id A3DD631C1E7; Mon, 26 Aug 2013 12:29:25 -0700 (PDT) Received: by yinz.mtv.corp.google.com (Postfix, from userid 184367) id 5FA1CC0F9A; Mon, 26 Aug 2013 12:29:25 -0700 (PDT) From: Jon McCune To: grub-devel@gnu.org Subject: [PATCH v1 1/2] make check_blocklists() not depend on an envblk data type Date: Mon, 26 Aug 2013 12:29:05 -0700 Message-Id: <1377545346-23642-2-git-send-email-jonmccune@google.com> X-Mailer: git-send-email 1.8.3 In-Reply-To: <1377545346-23642-1-git-send-email-jonmccune@google.com> References: <1377545346-23642-1-git-send-email-jonmccune@google.com> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:4002:c05::24a Cc: Jon McCune X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Aug 2013 19:29:47 -0000 Signed-off-by: Jon McCune This is a small patch that makes check_blocklists() more generally useful, and facilitates the next patch. --- grub-core/commands/loadenv.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/grub-core/commands/loadenv.c b/grub-core/commands/loadenv.c index c0a42c5..691d163 100644 --- a/grub-core/commands/loadenv.c +++ b/grub-core/commands/loadenv.c @@ -202,7 +202,7 @@ free_blocklists (struct blocklist *p) } static grub_err_t -check_blocklists (grub_envblk_t envblk, struct blocklist *blocklists, +check_blocklists (const char* expected_file_data, struct blocklist *blocklists, grub_file_t file) { grub_size_t total_length; @@ -210,7 +210,6 @@ check_blocklists (grub_envblk_t envblk, struct blocklist *blocklists, grub_disk_t disk; grub_disk_addr_t part_start; struct blocklist *p; - char *buf; /* Sanity checks. */ total_length = 0; @@ -243,7 +242,6 @@ check_blocklists (grub_envblk_t envblk, struct blocklist *blocklists, part_start = grub_partition_get_start (disk->partition); - buf = grub_envblk_buffer (envblk); for (p = blocklists, index = 0; p; index += p->length, p = p->next) { char blockbuf[GRUB_DISK_SECTOR_SIZE]; @@ -252,7 +250,7 @@ check_blocklists (grub_envblk_t envblk, struct blocklist *blocklists, p->offset, p->length, blockbuf)) return grub_errno; - if (grub_memcmp (buf + index, blockbuf, p->length) != 0) + if (grub_memcmp (expected_file_data + index, blockbuf, p->length) != 0) return grub_error (GRUB_ERR_FILE_READ_ERROR, "invalid blocklist"); } @@ -350,7 +348,7 @@ grub_cmd_save_env (grub_extcmd_context_t ctxt, int argc, char **args) if (! envblk) goto fail; - if (check_blocklists (envblk, ctx.head, file)) + if (check_blocklists (grub_envblk_buffer (envblk), ctx.head, file)) goto fail; while (argc) -- 1.8.3