From patchwork Wed Oct 17 14:45:32 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 985426 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [203.11.71.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42Zw352H5cz9s8J for ; Thu, 18 Oct 2018 01:45:53 +1100 (AEDT) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ORyHmWYE"; dkim-atps=neutral Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 42Zw341kGGzF3Vn for ; Thu, 18 Oct 2018 01:45:52 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ORyHmWYE"; dkim-atps=neutral X-Original-To: skiboot@lists.ozlabs.org Delivered-To: skiboot@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gmail.com (client-ip=2607:f8b0:4864:20::642; helo=mail-pl1-x642.google.com; envelope-from=npiggin@gmail.com; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ORyHmWYE"; dkim-atps=neutral Received: from mail-pl1-x642.google.com (mail-pl1-x642.google.com [IPv6:2607:f8b0:4864:20::642]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 42Zw2x1fFSzDr4F for ; Thu, 18 Oct 2018 01:45:45 +1100 (AEDT) Received: by mail-pl1-x642.google.com with SMTP id y11-v6so12804363plt.3 for ; Wed, 17 Oct 2018 07:45:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=0od1IOptFpjVjZcL4AoHYwEo6SewiOtyPJiDJYzF0m4=; b=ORyHmWYEjbKCyPjy7eSyk2l1+EOSZ1o/JPydvLfkG/dxjJRtC1UNXoQYsdFOymij7N cE/KTMYDFKmPtbmkmN3w9+1ThrrxjtADdX72AjPu/30PI9++P0TdmQoXqQVp6xXQWfwS IXaF4MYQVpRePaMc43cZ37YCFDf1qkxRffYeShekb1Xjex79rs3l85bYX21O0d1zlcON 3S9h62TmkCIrOVsVs5yC+97o8N5EEEr4O8ga9NX4afzu/sY8NtPhueb4HF1ljw2Jaxl1 4HBU9RjLfBGwVmrTqnznyiNlHs8wqrj8hdt+YM+9EGQEw1zIUAuNOamKH1k24C/ot0Ah BruQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=0od1IOptFpjVjZcL4AoHYwEo6SewiOtyPJiDJYzF0m4=; b=Q7LpCfjXVsDg0Aq5dqJCOq3qGmJ6nvC3uVGIuAxTUFq2I12uIl3HA3jWFcvRCOWGmz kob2VcKTGprpxiSf5WDyGOdC/wn3JqMnaXQx3oU+see0VL1oe1BBlydIJM5RInG/cadD gruk72JSEsLei8rwryX87u8aMu508iSavYPiJoePluNwaNaiXJIMF+c3JeSTdpz04qGX 0TfmO2vnBmkohfOdJsPmqBhNyDw5uzHGOM40BXv1dN+nqM/LZyGUiUxBOt5n++b+L5k7 iMUXb8zBmmCeCrlM4ZkuDimkoRskOawru1mxTe7KDAwmXR7rmxdqX3NI/U219NeQTaGJ 97UA== X-Gm-Message-State: ABuFfojAyv2RFgD+HReGLbvrLcY5wU6oEvYemKavMg6wQWNX3ShZYTuH uanGcNxc94QrR7RVbVQuKNNYVE/P X-Google-Smtp-Source: ACcGV60iXNTxmj5km+Omrx2eA573JiiJkMUxulbTC4Okvo2qkrTEDVBdcukL+KOG9JnlkWQsxCq9sg== X-Received: by 2002:a17:902:854c:: with SMTP id d12-v6mr26071045plo.313.1539787542837; Wed, 17 Oct 2018 07:45:42 -0700 (PDT) Received: from roar.local0.net (14-202-199-226.tpgi.com.au. [14.202.199.226]) by smtp.gmail.com with ESMTPSA id d7-v6sm29029719pfm.23.2018.10.17.07.45.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 17 Oct 2018 07:45:42 -0700 (PDT) From: Nicholas Piggin To: skiboot@lists.ozlabs.org Date: Thu, 18 Oct 2018 00:45:32 +1000 Message-Id: <20181017144533.12571-1-npiggin@gmail.com> X-Mailer: git-send-email 2.18.0 Subject: [Skiboot] [PATCH 1/2] core/flash: NULL pointer dereference fixes X-BeenThere: skiboot@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Mailing list for skiboot development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: skiboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Skiboot" These were caught with unmapped memory dereference page faults. Signed-off-by: Nicholas Piggin --- core/flash-subpartition.c | 15 +++++++++------ core/flash.c | 6 +++++- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/core/flash-subpartition.c b/core/flash-subpartition.c index 641448d5..7931790c 100644 --- a/core/flash-subpartition.c +++ b/core/flash-subpartition.c @@ -32,17 +32,18 @@ struct flash_hostboot_header { }; int flash_subpart_info(void *part_header, uint32_t header_len, - uint32_t part_size, uint32_t *part_actual, + uint32_t part_size, uint32_t *part_actualp, uint32_t subid, uint32_t *offset, uint32_t *size) { struct flash_hostboot_header *header; char eyecatcher[5]; uint32_t i, ec, o, s; + uint32_t part_actual; bool subpart_found; - if (!part_header || ( !offset && !size && !part_actual)) { + if (!part_header || ( !offset && !size && !part_actualp)) { prlog(PR_ERR, "FLASH: invalid parameters: ph %p of %p sz %p " - "tsz %p\n", part_header, offset, size, part_actual); + "tsz %p\n", part_header, offset, size, part_actualp); return OPAL_PARAMETER; } @@ -68,7 +69,7 @@ int flash_subpart_info(void *part_header, uint32_t header_len, eyecatcher); subpart_found = false; - *part_actual = 0; + part_actual = 0; for (i = 0; i < FLASH_HOSTBOOT_TOC_MAX_ENTRIES; i++) { ec = be32_to_cpu(header->toc[i].ec); @@ -97,8 +98,8 @@ int flash_subpart_info(void *part_header, uint32_t header_len, * Subpartitions content are different, but multiple toc entries * may point to the same subpartition. */ - if (ALIGN_UP(o + s, FLASH_SUBPART_HEADER_SIZE) > *part_actual) - *part_actual = ALIGN_UP(o + s, FLASH_SUBPART_HEADER_SIZE); + if (ALIGN_UP(o + s, FLASH_SUBPART_HEADER_SIZE) > part_actual) + part_actual = ALIGN_UP(o + s, FLASH_SUBPART_HEADER_SIZE); if (ec == subid) { if (offset) @@ -112,5 +113,7 @@ int flash_subpart_info(void *part_header, uint32_t header_len, prerror("FLASH: flash subpartition not found.\n"); return OPAL_RESOURCE; } + if (part_actualp) + *part_actualp = part_actual; return OPAL_SUCCESS; } diff --git a/core/flash.c b/core/flash.c index 6d6e3547..065fde29 100644 --- a/core/flash.c +++ b/core/flash.c @@ -428,9 +428,13 @@ int flash_register(struct blocklevel_device *bl) if (rc) return rc; + if (!name) + name = "(unnamed)"; + prlog(PR_INFO, "FLASH: registering flash device %s " "(size 0x%llx, blocksize 0x%x)\n", - name ?: "(unnamed)", size, block_size); + name, size, block_size); + flash = malloc(sizeof(struct flash)); if (!flash) { prlog(PR_ERR, "FLASH: Error allocating flash structure\n"); From patchwork Wed Oct 17 14:45:33 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicholas Piggin X-Patchwork-Id: 985427 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 42Zw3T0wSJz9s8J for ; Thu, 18 Oct 2018 01:46:13 +1100 (AEDT) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="jwUiP0yG"; dkim-atps=neutral Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 42Zw3S6WZmzF3YL for ; Thu, 18 Oct 2018 01:46:12 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="jwUiP0yG"; dkim-atps=neutral X-Original-To: skiboot@lists.ozlabs.org Delivered-To: skiboot@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gmail.com (client-ip=2607:f8b0:4864:20::441; helo=mail-pf1-x441.google.com; envelope-from=npiggin@gmail.com; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="jwUiP0yG"; dkim-atps=neutral Received: from mail-pf1-x441.google.com (mail-pf1-x441.google.com [IPv6:2607:f8b0:4864:20::441]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 42Zw2z71r0zDr4F for ; Thu, 18 Oct 2018 01:45:47 +1100 (AEDT) Received: by mail-pf1-x441.google.com with SMTP id f78-v6so7550495pfe.1 for ; Wed, 17 Oct 2018 07:45:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=m57sz/FMeyuxQYb9QbD9FQEgdKc4BxBJciS/206AWnY=; b=jwUiP0yGYWh+eabNSkuYUG+UWVxq/bQdwCkAaJYSCwP3UpCXb5S1/uD5ANPgkPFK+T XUp9hOdze3opCan2jWpGLAm7QNmniiAcfERAVm5zIJnFYkd+nAcSIGPT2ipuDS6CeFvY fYJYZH1ASNNNRBLR7nWm4YDdvScb4NGfm1tCmp3oEb0eLrfINlQWMYjrLAw1Z/6rnQVg +wbp7hMnfk/X7BYvhLUGXtRZ6/MqiieYCc9tmEkXgiam2Fii+8iUbZXPW1S2t8zZpehl t/j4GOtfBOi4KAfNgVAntDadcqum+T0W6px5JSdUmZU78SYXAzJtmfA3BBNWB2Zx91li 6beg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=m57sz/FMeyuxQYb9QbD9FQEgdKc4BxBJciS/206AWnY=; b=oo0mPgu1if+4EJhXmvWmEvnuey96KTIzgjBPLnY8Ud8UoVsXK6X/prhHdxjKCSs54M ziEQvC/P1Nn57dGFN9lzxK1Uq1Mcb6Gtbq3i/gCmubZ2FXlOlLIP7q6NFZmb1RV43+69 TXE1dzAJYkn42krkrFhLV79htrhezjcYK77UOS7zn+zfKGzUYlyxLMo43AseNxvSAT1v MVgpaDfIPFZYoRRKUzEYnIBe4D2Z0BVCBBUz3sl8HVVSfscLyKnwjGaKcQee1+wOjnzK s0OQmGf+N+jse6+CiY3T2RtUPvDxt/u8tQNkVK377sOU2HqSFUs7av89exqO7dy5ieJi PzyQ== X-Gm-Message-State: ABuFfoh/wwf04rbtE2toIFZkKqbhFC6xCwkMelZ7Lw6jfFMc5KBEWeBz WMSluZfd/yX/GKHV7RiLrW+7SLSf X-Google-Smtp-Source: ACcGV60spuEIoQB09Hx34f4KmYa1vb8hePQkAVwpgxTVJtsv7vg/FO8BdWOofNWuPLY1vpGb+i9Whg== X-Received: by 2002:a63:a612:: with SMTP id t18-v6mr24267613pge.338.1539787545984; Wed, 17 Oct 2018 07:45:45 -0700 (PDT) Received: from roar.local0.net (14-202-199-226.tpgi.com.au. [14.202.199.226]) by smtp.gmail.com with ESMTPSA id d7-v6sm29029719pfm.23.2018.10.17.07.45.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 17 Oct 2018 07:45:45 -0700 (PDT) From: Nicholas Piggin To: skiboot@lists.ozlabs.org Date: Thu, 18 Oct 2018 00:45:33 +1000 Message-Id: <20181017144533.12571-2-npiggin@gmail.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181017144533.12571-1-npiggin@gmail.com> References: <20181017144533.12571-1-npiggin@gmail.com> Subject: [Skiboot] [PATCH 2/2] core/device: NULL pointer dereference fix X-BeenThere: skiboot@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Mailing list for skiboot development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: skiboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Skiboot" This was caught with unmapped memory dereference page faults. Signed-off-by: Nicholas Piggin --- core/device.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/device.c b/core/device.c index 19a8d8d6..6364a60e 100644 --- a/core/device.c +++ b/core/device.c @@ -494,7 +494,10 @@ struct dt_property *dt_add_property_string(struct dt_node *node, const char *name, const char *value) { - return dt_add_property(node, name, value, strlen(value)+1); + size_t len = 0; + if (value) + len = strlen(value) + 1; + return dt_add_property(node, name, value, len); } struct dt_property *dt_add_property_nstr(struct dt_node *node,