* [PATCH] startup: execute /env/bin/init as part of the initial shell
@ 2019-06-12 9:43 Ian Abbott
2019-06-13 5:57 ` Sascha Hauer
0 siblings, 1 reply; 2+ messages in thread
From: Ian Abbott @ 2019-06-12 9:43 UTC (permalink / raw)
To: barebox; +Cc: Ian Abbott
Commit 90df2a955e3c ("defaultenv: Convert init script to C")
unintentionally changed the way the legacy "/env/bin/init" script is
run, so that it runs in a sub-shell context, effectively changing
`run_command("source /env/bin/init");` to
`run_command("/env/bin/init");`. Therefore, any changes to shell
environment variables made by the script are undone when the script
exits. This patch reverts back to the old behavior.
Fixes: 90df2a955e3c ("defaultenv: Convert init script to C")
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
---
common/startup.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/common/startup.c b/common/startup.c
index 9fac0eabb..9345d131b 100644
--- a/common/startup.c
+++ b/common/startup.c
@@ -188,11 +188,12 @@ static bool test_abort(void)
return false;
}
+#define INITFILE "/env/bin/init"
+
static int run_init(void)
{
DIR *dir;
struct dirent *d;
- const char *initfile = "/env/bin/init";
const char *initdir = "/env/init";
const char *menufile = "/env/menu/mainmenu";
struct stat s;
@@ -206,10 +207,10 @@ static int run_init(void)
setenv("PATH", "/env/bin");
/* Run legacy /env/bin/init if it exists */
- env_bin_init_exists = stat(initfile, &s) == 0;
+ env_bin_init_exists = stat(INITFILE, &s) == 0;
if (env_bin_init_exists) {
- pr_info("running %s...\n", initfile);
- run_command(initfile);
+ pr_info("running %s...\n", INITFILE);
+ run_command("source " INITFILE);
return 0;
}
--
2.20.1
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] startup: execute /env/bin/init as part of the initial shell
2019-06-12 9:43 [PATCH] startup: execute /env/bin/init as part of the initial shell Ian Abbott
@ 2019-06-13 5:57 ` Sascha Hauer
0 siblings, 0 replies; 2+ messages in thread
From: Sascha Hauer @ 2019-06-13 5:57 UTC (permalink / raw)
To: Ian Abbott; +Cc: barebox
On Wed, Jun 12, 2019 at 10:43:33AM +0100, Ian Abbott wrote:
> Commit 90df2a955e3c ("defaultenv: Convert init script to C")
> unintentionally changed the way the legacy "/env/bin/init" script is
> run, so that it runs in a sub-shell context, effectively changing
> `run_command("source /env/bin/init");` to
> `run_command("/env/bin/init");`. Therefore, any changes to shell
> environment variables made by the script are undone when the script
> exits. This patch reverts back to the old behavior.
>
> Fixes: 90df2a955e3c ("defaultenv: Convert init script to C")
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
> ---
> common/startup.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
Applied, thanks
Sascha
>
> diff --git a/common/startup.c b/common/startup.c
> index 9fac0eabb..9345d131b 100644
> --- a/common/startup.c
> +++ b/common/startup.c
> @@ -188,11 +188,12 @@ static bool test_abort(void)
> return false;
> }
>
> +#define INITFILE "/env/bin/init"
> +
> static int run_init(void)
> {
> DIR *dir;
> struct dirent *d;
> - const char *initfile = "/env/bin/init";
> const char *initdir = "/env/init";
> const char *menufile = "/env/menu/mainmenu";
> struct stat s;
> @@ -206,10 +207,10 @@ static int run_init(void)
> setenv("PATH", "/env/bin");
>
> /* Run legacy /env/bin/init if it exists */
> - env_bin_init_exists = stat(initfile, &s) == 0;
> + env_bin_init_exists = stat(INITFILE, &s) == 0;
> if (env_bin_init_exists) {
> - pr_info("running %s...\n", initfile);
> - run_command(initfile);
> + pr_info("running %s...\n", INITFILE);
> + run_command("source " INITFILE);
> return 0;
> }
>
> --
> 2.20.1
>
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-06-13 5:57 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-12 9:43 [PATCH] startup: execute /env/bin/init as part of the initial shell Ian Abbott
2019-06-13 5:57 ` Sascha Hauer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox