From patchwork Fri Mar 27 03:06:14 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Colin Ian King X-Patchwork-Id: 455277 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) by ozlabs.org (Postfix) with ESMTP id 0015C140079; Fri, 27 Mar 2015 14:08:04 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.76) (envelope-from ) id 1YbKct-00060K-LY; Fri, 27 Mar 2015 03:08:03 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtp (Exim 4.76) (envelope-from ) id 1YbKcn-000606-UV for fwts-devel@lists.ubuntu.com; Fri, 27 Mar 2015 03:07:57 +0000 Received: from 205.158.164.101.ptr.us.xo.net ([205.158.164.101] helo=localhost) by youngberry.canonical.com with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1YbKcn-0000VQ-ID for fwts-devel@lists.ubuntu.com; Fri, 27 Mar 2015 03:07:57 +0000 From: Colin King To: fwts-devel@lists.ubuntu.com Subject: [PATCH] uefi: uefidump: don't dump non-printable variable contents (LP: #1435346) Date: Fri, 27 Mar 2015 03:06:14 +0000 Message-Id: <1427425574-3188-1-git-send-email-colin.king@canonical.com> X-Mailer: git-send-email 2.1.4 X-BeenThere: fwts-devel@lists.ubuntu.com X-Mailman-Version: 2.1.14 Precedence: list List-Id: Firmware Test Suite Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: fwts-devel-bounces@lists.ubuntu.com Sender: fwts-devel-bounces@lists.ubuntu.com From: Colin Ian King Do a hex dump of kernel dump UEFI vars if the contents is not printable ASCII. Signed-off-by: Colin Ian King --- src/uefi/uefidump/uefidump.c | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/src/uefi/uefidump/uefidump.c b/src/uefi/uefidump/uefidump.c index 8421e72..014abe2 100644 --- a/src/uefi/uefidump/uefidump.c +++ b/src/uefi/uefidump/uefidump.c @@ -768,19 +768,35 @@ static void uefidump_info_dump_type0(fwts_framework *fw, fwts_uefi_var *var) { char *ptr = (char*)var->data; size_t len = var->datalen; + bool printable = true; while (len && *ptr) { - char *start = ptr; - while (len && *ptr && *ptr != '\n') { - ptr++; - len--; + if (!(isspace(*ptr) || isprint(*ptr))) { + printable = false; + break; } + ptr++; + len--; + } - if (*ptr == '\n') { - *ptr++ = '\0'; - len--; - fwts_log_info_verbatum(fw, " KLog: %s.", start); + ptr = (char*)var->data; + len = var->datalen; + + if (printable) { + while (len && *ptr) { + char *start = ptr; + while (len && *ptr && *ptr != '\n') { + ptr++; + len--; + } + if (*ptr == '\n') { + *ptr++ = '\0'; + len--; + fwts_log_info_verbatum(fw, " KLog: %s.", start); + } } + } else { + uefidump_var_hexdump(fw, var); } }