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
next prev 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