diff options
Diffstat (limited to 'common/hush.c')
-rw-r--r-- | common/hush.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/common/hush.c b/common/hush.c index dbb952d..7e8a80d 100644 --- a/common/hush.c +++ b/common/hush.c @@ -313,7 +313,7 @@ struct variables *top_vars = &shell_ver; #else static int flag_repeat = 0; static int do_repeat = 0; -static struct variables *top_vars ; +static struct variables *top_vars = NULL ; #endif /*__U_BOOT__ */ #define B_CHUNK (100) @@ -3194,13 +3194,15 @@ static void u_boot_hush_reloc(void) int u_boot_hush_start(void) { - top_vars = malloc(sizeof(struct variables)); - top_vars->name = "HUSH_VERSION"; - top_vars->value = "0.01"; - top_vars->next = 0; - top_vars->flg_export = 0; - top_vars->flg_read_only = 1; - u_boot_hush_reloc(); + if (top_vars == NULL) { + top_vars = malloc(sizeof(struct variables)); + top_vars->name = "HUSH_VERSION"; + top_vars->value = "0.01"; + top_vars->next = 0; + top_vars->flg_export = 0; + top_vars->flg_read_only = 1; + u_boot_hush_reloc(); + } return 0; } |