From 5d22cb385695dc17cb226ba63db3c2a253a56bc6 Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Thu, 20 Feb 2014 10:54:28 +0100 Subject: defaultenv: Align defaultenv array The default environment buffer is an unsigned char array and thus may be unaligned. Some decompression algorithms expect the buffer to be sufficiently aligned for u32 accesses. We make this sure by copying the default env to a temporary buffer. Instead of doing this just add a __aligned(4) to the default environment. Signed-off-by: Sascha Hauer --- common/startup.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) (limited to 'common/startup.c') diff --git a/common/startup.c b/common/startup.c index 4bc5628f4a..6847b61b46 100644 --- a/common/startup.c +++ b/common/startup.c @@ -53,21 +53,12 @@ static int register_default_env(void) void *defaultenv; if (!IS_ENABLED(CONFIG_DEFAULT_COMPRESSION_NONE)) { - void *tmp = malloc(default_environment_size); - - if (!tmp) - return -ENOMEM; - - memcpy(tmp, default_environment, default_environment_size); defaultenv = xzalloc(default_environment_uncompress_size); - ret = uncompress(tmp, default_environment_size, + ret = uncompress(default_environment, default_environment_size, NULL, NULL, defaultenv, NULL, uncompress_err_stdout); - - free(tmp); - if (ret) { free(defaultenv); return ret; -- cgit v1.2.3