From: Jan Kiszka <jan.kis...@siemens.com>

There is no reason to pass this stack-allocated buffer around.

Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>
---
 env/env_api_fat.c | 28 ++++++++++++----------------
 1 file changed, 12 insertions(+), 16 deletions(-)

diff --git a/env/env_api_fat.c b/env/env_api_fat.c
index b409d45..67898c8 100644
--- a/env/env_api_fat.c
+++ b/env/env_api_fat.c
@@ -284,9 +284,10 @@ void bgenv_close(BGENV *env)
        free(env);
 }
 
-static int bgenv_get_uint(char *buffer, uint64_t *type, void *data,
-                         unsigned int src, uint64_t t)
+static int bgenv_get_uint(uint64_t *type, void *data, unsigned int src,
+                         uint64_t t)
 {
+       char buffer[ENV_STRING_LENGTH];
        int res;
 
        res = sprintf(buffer, "%u", src);
@@ -300,9 +301,10 @@ static int bgenv_get_uint(char *buffer, uint64_t *type, 
void *data,
        return 0;
 }
 
-static int bgenv_get_string(char *buffer, uint64_t *type, void *data,
-                           const char16_t *srcstr)
+static int bgenv_get_string(uint64_t *type, void *data, const char16_t *srcstr)
 {
+       char buffer[ENV_STRING_LENGTH];
+
        str16to8(buffer, srcstr);
        if (!data) {
                return strlen(buffer)+1;
@@ -318,7 +320,6 @@ int bgenv_get(BGENV *env, const char *key, uint64_t *type, 
void *data,
              uint32_t maxlen)
 {
        EBGENVKEY e;
-       char buffer[ENV_STRING_LENGTH];
 
        if (!key || maxlen == 0) {
                return -EINVAL;
@@ -343,26 +344,21 @@ int bgenv_get(BGENV *env, const char *key, uint64_t 
*type, void *data,
        }
        switch (e) {
        case EBGENV_KERNELFILE:
-               return bgenv_get_string(buffer, type, data,
-                                       env->data->kernelfile);
+               return bgenv_get_string(type, data, env->data->kernelfile);
        case EBGENV_KERNELPARAMS:
-               return bgenv_get_string(buffer, type, data,
-                                       env->data->kernelparams);
+               return bgenv_get_string(type, data, env->data->kernelparams);
        case EBGENV_WATCHDOG_TIMEOUT_SEC:
-               return bgenv_get_uint(buffer, type, data,
+               return bgenv_get_uint(type, data,
                                      env->data->watchdog_timeout_sec,
                                      USERVAR_TYPE_UINT16);
        case EBGENV_REVISION:
-               return bgenv_get_uint(buffer, type, data,
-                                     env->data->revision,
+               return bgenv_get_uint(type, data, env->data->revision,
                                      USERVAR_TYPE_UINT16);
        case EBGENV_USTATE:
-               return bgenv_get_uint(buffer, type, data,
-                                     env->data->ustate,
+               return bgenv_get_uint(type, data, env->data->ustate,
                                      USERVAR_TYPE_UINT8);
        case EBGENV_IN_PROGRESS:
-               return bgenv_get_uint(buffer, type, data,
-                                     env->data->in_progress,
+               return bgenv_get_uint(type, data, env->data->in_progress,
                                      USERVAR_TYPE_UINT8);
        default:
                if (!data) {
-- 
2.51.0

-- 
You received this message because you are subscribed to the Google Groups "EFI 
Boot Guard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to efibootguard-dev+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/efibootguard-dev/2df06810-d66c-4b1e-adcd-36e493df4a8a%40siemens.com.

Reply via email to