From: Jan Kiszka <[email protected]> When passed NULL, just do nothing (which is exactly what free() does). That allows to clean up even more pointless error checks on the call sites.
Signed-off-by: Jan Kiszka <[email protected]> --- env/env_api.c | 14 +++++-------- env/env_api_fat.c | 12 +++-------- include/env_api.h | 2 +- tools/bg_setenv.c | 9 ++------- tools/tests/test_ebgenv_api.c | 28 +------------------------- tools/tests/test_ebgenv_api_internal.c | 2 +- 6 files changed, 13 insertions(+), 54 deletions(-) diff --git a/env/env_api.c b/env/env_api.c index d6f1795..e6051e3 100644 --- a/env/env_api.c +++ b/env/env_api.c @@ -160,7 +160,7 @@ uint16_t ebg_env_getglobalstate(ebgenv_t *e) env->data->ustate == USTATE_FAILED) { res = 3; } - (void)bgenv_close(env); + bgenv_close(env); if (res == 3) { return res; } @@ -205,13 +205,11 @@ int ebg_env_setglobalstate(ebgenv_t *e, uint16_t ustate) env->data->crc32 = crc32(0, (Bytef *)env->data, sizeof(BG_ENVDATA) - sizeof(env->data->crc32)); if (!bgenv_write(env)) { - (void)bgenv_close(env); + bgenv_close(env); return -EIO; } } - if (!bgenv_close(env)) { - return -EIO; - } + bgenv_close(env); } return 0; } @@ -232,12 +230,10 @@ int ebg_env_close(ebgenv_t *e) sizeof(BG_ENVDATA) - sizeof(env_current->data->crc32)); /* save */ if (!bgenv_write(env_current)) { - (void)bgenv_close(env_current); - return EIO; - } - if (!bgenv_close(env_current)) { + bgenv_close(env_current); return EIO; } + bgenv_close(env_current); e->bgenv = NULL; return 0; } diff --git a/env/env_api_fat.c b/env/env_api_fat.c index 9f2a5cd..ac408f6 100644 --- a/env/env_api_fat.c +++ b/env/env_api_fat.c @@ -232,13 +232,9 @@ BG_ENVDATA *bgenv_read(BGENV *env) * are redesigned. */ __attribute((noinline)) -bool bgenv_close(BGENV *env) +void bgenv_close(BGENV *env) { - if (env) { - free(env); - return true; - } - return false; + free(env); } static int bgenv_get_uint(char *buffer, uint64_t *type, void *data, @@ -418,9 +414,7 @@ BGENV *bgenv_create_new(void) int new_rev = env_latest->data->revision + 1; - if (!bgenv_close(env_latest)) { - goto create_new_io_error; - } + bgenv_close(env_latest); env_new = bgenv_open_oldest(); if (!env_new) { diff --git a/include/env_api.h b/include/env_api.h index 45bf4b7..8051964 100644 --- a/include/env_api.h +++ b/include/env_api.h @@ -84,7 +84,7 @@ extern BGENV *bgenv_open_oldest(void); extern BGENV *bgenv_open_latest(void); extern bool bgenv_write(BGENV *env); extern BG_ENVDATA *bgenv_read(BGENV *env); -extern bool bgenv_close(BGENV *env); +extern void bgenv_close(BGENV *env); extern BGENV *bgenv_create_new(void); extern int bgenv_get(BGENV *env, char *key, uint64_t *type, void *data, diff --git a/tools/bg_setenv.c b/tools/bg_setenv.c index 9979306..0f34917 100644 --- a/tools/bg_setenv.c +++ b/tools/bg_setenv.c @@ -656,9 +656,7 @@ int main(int argc, char **argv) sizeof(BG_ENVDATA)); env_new->data->revision = env_current->data->revision + 1; - if (!bgenv_close(env_current)) { - fprintf(stderr, "Error closing environment.\n"); - } + bgenv_close(env_current); } else { if (part_specified) { env_new = bgenv_open_by_index(arguments.which_part); @@ -683,10 +681,7 @@ int main(int argc, char **argv) fprintf(stderr, "Error storing environment.\n"); return 1; } - if (!bgenv_close(env_new)) { - fprintf(stderr, "Error closing environment.\n"); - return 1; - } + bgenv_close(env_new); fprintf(stdout, "Environment update was successful.\n"); diff --git a/tools/tests/test_ebgenv_api.c b/tools/tests/test_ebgenv_api.c index f7a3410..e18c055 100644 --- a/tools/tests/test_ebgenv_api.c +++ b/tools/tests/test_ebgenv_api.c @@ -29,12 +29,11 @@ Suite *ebg_test_suite(void); extern bool write_env(CONFIG_PART *part, BG_ENVDATA *env); extern bool bgenv_write(BGENV *); extern bool bgenv_init(void); -extern bool bgenv_close(BGENV *); +extern void bgenv_close(BGENV *); extern BGENV *bgenv_create_new(void); FAKE_VALUE_FUNC(bool, bgenv_init); FAKE_VALUE_FUNC(bool, bgenv_write, BGENV *); -FAKE_VALUE_FUNC(bool, bgenv_close, BGENV *); int __real_bgenv_set(BGENV *, char *, uint64_t, void *, uint32_t); int __wrap_bgenv_set(BGENV *, char *, uint64_t, void *, uint32_t); @@ -104,7 +103,6 @@ START_TEST(ebgenv_api_ebg_env_create_new) * returns false */ bgenv_init_fake.return_val = false; - bgenv_close_fake.return_val = true; ret = ebg_env_create_new(&e); ck_assert_int_eq(ret, EIO); @@ -122,7 +120,6 @@ START_TEST(ebgenv_api_ebg_env_create_new) errno = 0; bgenv_init_fake.return_val = true; - bgenv_close_fake.return_val = true; ret = ebg_env_create_new(&e); ck_assert_int_eq(errno, 0); @@ -527,7 +524,6 @@ START_TEST(ebgenv_api_ebg_env_setglobalstate) envdata[1].ustate = USTATE_FAILED; bgenv_write_fake.return_val = true; - bgenv_close_fake.return_val = true; ret = ebg_env_setglobalstate(&e, USTATE_OK); @@ -550,17 +546,6 @@ START_TEST(ebgenv_api_ebg_env_setglobalstate) * fails */ bgenv_write_fake.return_val = false; - bgenv_close_fake.return_val = true; - - ret = ebg_env_setglobalstate(&e, USTATE_OK); - - ck_assert_int_eq(ret, -EIO); - - /* Test if ebg_env_setglobalstate fails and returns EIO if bgenv_close - * fails - */ - bgenv_write_fake.return_val = true; - bgenv_close_fake.return_val = false; ret = ebg_env_setglobalstate(&e, USTATE_OK); @@ -589,15 +574,6 @@ START_TEST(ebgenv_api_ebg_env_close) ((BGENV *)e.bgenv)->data = calloc(1, sizeof(BG_ENVDATA)); bgenv_write_fake.return_val = false; - bgenv_close_fake.return_val = true; - ret = ebg_env_close(&e); - - ck_assert_int_eq(ret, EIO); - - /* Test if ebg_env_close fails and returns EIO if bgenv_close fails. - */ - bgenv_write_fake.return_val = true; - bgenv_close_fake.return_val = false; ret = ebg_env_close(&e); ck_assert_int_eq(ret, EIO); @@ -605,7 +581,6 @@ START_TEST(ebgenv_api_ebg_env_close) /* Test if ebg_env_close is successful if all prerequisites are met */ bgenv_write_fake.return_val = true; - bgenv_close_fake.return_val = true; BGENV *save_ptr = e.bgenv; ret = ebg_env_close(&e); @@ -624,7 +599,6 @@ START_TEST(ebgenv_api_ebg_env_register_gc_var) memset(&e, 0, sizeof(e)); bgenv_write_fake.return_val = true; - bgenv_close_fake.return_val = true; bgenv_init_fake.return_val = true; diff --git a/tools/tests/test_ebgenv_api_internal.c b/tools/tests/test_ebgenv_api_internal.c index 2011bab..1a5dfa0 100644 --- a/tools/tests/test_ebgenv_api_internal.c +++ b/tools/tests/test_ebgenv_api_internal.c @@ -419,7 +419,7 @@ START_TEST(ebgenv_api_internal_uservars) write_env_fake.call_count = 0; - (void)bgenv_close(handle); + bgenv_close(handle); } END_TEST -- 2.26.2 -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/efibootguard-dev/a351a72c-2fb8-4342-3df0-f5fff3070c3f%40web.de.
