public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: "Marek Behún" <kabel@kernel.org>
To: u-boot-board-maintainers@lists.denx.de,
	u-boot-custodians@lists.denx.de, Tom Rini <trini@konsulko.com>,
	Simon Glass <sjg@chromium.org>,
	u-boot@lists.denx.de, Joe Hershberger <joe.hershberger@ni.com>,
	Wolfgang Denk <wd@denx.de>
Cc: "Marek Behún" <marek.behun@nic.cz>
Subject: [PATCH 14/14] env: Use static_assert() to check if default_environment is too large
Date: Fri, 22 Oct 2021 15:47:25 +0200	[thread overview]
Message-ID: <20211022134725.26004-15-kabel@kernel.org> (raw)
In-Reply-To: <20211022134725.26004-1-kabel@kernel.org>

From: Marek Behún <marek.behun@nic.cz>

Check sizeof(default_environment) against ENV_SIZE in a static_assert()
instead of runtime.
Only check if !USE_HOSTCC (for in fw_env tool ENV_SIZE expands to a
variable, and cannot be checked statically) nad
!DEFAULT_ENV_INSTANCE_EMBEDDED, for in that case the default_environment
variable is not set.

Signed-off-by: Marek Behún <marek.behun@nic.cz>
---
 env/common.c          | 5 -----
 include/env_default.h | 6 ++++++
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/env/common.c b/env/common.c
index 664d2e688e..99729ca002 100644
--- a/env/common.c
+++ b/env/common.c
@@ -247,11 +247,6 @@ char *env_get_default(const char *name)
 
 void env_set_default(const char *s, int flags)
 {
-	if (sizeof(default_environment) > ENV_SIZE) {
-		puts("*** Error - default environment is too large\n\n");
-		return;
-	}
-
 	if (s) {
 		if ((flags & H_INTERACTIVE) == 0) {
 			printf("*** Warning - %s, "
diff --git a/include/env_default.h b/include/env_default.h
index a6724719ec..23430dc70d 100644
--- a/include/env_default.h
+++ b/include/env_default.h
@@ -121,3 +121,9 @@ const char default_environment[] = {
 	}
 #endif
 };
+
+#if !defined(USE_HOSTCC) && !defined(DEFAULT_ENV_INSTANCE_EMBEDDED)
+#include <env_internal.h>
+static_assert(sizeof(default_environment) <= ENV_SIZE,
+	      "Default environment is too large");
+#endif
-- 
2.32.0


  parent reply	other threads:[~2021-10-22 13:57 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-22 13:47 [PATCH 00/14] Some more env fixes Marek Behún
2021-10-22 13:47 ` [PATCH 01/14] env: sf: Cosmetic fix in env_sf_init_addr() Marek Behún
2021-10-22 16:08   ` Simon Glass
2021-10-31 12:57     ` Simon Glass
2021-10-22 13:47 ` [PATCH 02/14] env: sf: Use ENV_VALID enum names instead of literals Marek Behún
2021-10-22 16:08   ` Simon Glass
2021-10-31 12:57     ` Simon Glass
2021-10-22 13:47 ` [PATCH 03/14] env: sf: Put ENV_INVALID into gd->env_valid on CRC failure Marek Behún
2021-10-22 16:08   ` Simon Glass
2021-10-22 13:47 ` [PATCH 04/14] env: nand: Put ENV_INVALID into gd->env_valid if default environment Marek Behún
2021-10-22 16:08   ` Simon Glass
2021-10-31 12:57     ` Simon Glass
2021-10-22 13:47 ` [PATCH 05/14] env: nvram: Let generic env_init() assign " Marek Behún
2021-10-22 16:08   ` Simon Glass
2021-10-31 12:57     ` Simon Glass
2021-10-22 13:47 ` [PATCH 06/14] env: nvram: Cosmetic fix in env_nvram_init() Marek Behún
2021-10-22 16:08   ` Simon Glass
2021-10-31 12:57     ` Simon Glass
2021-10-22 13:47 ` [PATCH 07/14] env: nowhere: Let generic env_init() assign default environment Marek Behún
2021-10-22 16:08   ` Simon Glass
2021-10-31 12:57     ` Simon Glass
2021-10-22 13:47 ` [PATCH 08/14] env: nowhere: Cosmetic fix Marek Behún
2021-10-22 16:08   ` Simon Glass
2021-10-31 12:57     ` Simon Glass
2021-10-22 13:47 ` [PATCH 09/14] env: flash: Let generic env_init() assign default environment Marek Behún
2021-10-22 16:08   ` Simon Glass
2021-10-22 13:47 ` [PATCH 10/14] env: flash: Cosmetic fix Marek Behún
2021-10-22 16:08   ` Simon Glass
2021-10-31 12:57     ` Simon Glass
2021-10-22 13:47 ` [PATCH 11/14] board: synquacer: developerbox: Don't set gd->env_addr to default_environment Marek Behún
2021-10-22 16:08   ` Simon Glass
2021-10-31 12:57     ` Simon Glass
2021-11-17  4:58   ` Masami Hiramatsu
2021-11-17 20:36     ` Simon Glass
2021-11-18  5:40       ` Masami Hiramatsu
2021-11-18  5:45         ` [PATCH] Revert "board: synquacer: developerbox: Don't set gd->env_addr to default_environment" Masami Hiramatsu
2021-11-18 13:42           ` Marek Behún
2021-11-18 23:27           ` Tom Rini
2021-10-22 13:47 ` [PATCH 12/14] board: freescale: various boards: Let env subsystem set gd->env_addr Marek Behún
2021-10-22 16:08   ` Simon Glass
2021-10-31 12:56     ` Simon Glass
2021-10-22 13:47 ` [PATCH 13/14] env: Always use char for default_environment Marek Behún
2021-10-22 16:08   ` Simon Glass
2021-10-31 12:56     ` Simon Glass
2021-10-22 13:47 ` Marek Behún [this message]
2021-10-22 16:08   ` [PATCH 14/14] env: Use static_assert() to check if default_environment is too large Simon Glass
2021-10-31 12:56     ` Simon Glass

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211022134725.26004-15-kabel@kernel.org \
    --to=kabel@kernel.org \
    --cc=joe.hershberger@ni.com \
    --cc=marek.behun@nic.cz \
    --cc=sjg@chromium.org \
    --cc=trini@konsulko.com \
    --cc=u-boot-board-maintainers@lists.denx.de \
    --cc=u-boot-custodians@lists.denx.de \
    --cc=u-boot@lists.denx.de \
    --cc=wd@denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox