From 009d9238317d152f524ee46c4be1ad2f93c47732 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Sep 28 2018 08:41:49 +0000 Subject: lu_dispatch: Free tmp on failures Merges: https://pagure.io/libuser/issue/23 This makes the code slightly less compact with using an explicit condition instead of the g_return_val_if_fail() shorthand, but freeing tmp on failures. --- diff --git a/lib/user.c b/lib/user.c index ad2bb09..5709f41 100644 --- a/lib/user.c +++ b/lib/user.c @@ -980,7 +980,10 @@ lu_dispatch(struct lu_context *context, case user_default: case group_default: /* Make sure we have both name and boolean here. */ - g_return_val_if_fail(sdata != NULL, FALSE); + if (sdata == NULL) { + free(tmp); + return FALSE; + } /* Run the checks and preps. */ if (run_list(context, context->create_module_names, logic_and, id, @@ -1059,7 +1062,10 @@ lu_dispatch(struct lu_context *context, case user_setpass: case group_setpass: /* Make sure we have a valid password. */ - g_return_val_if_fail(sdata != NULL, FALSE); + if (sdata == NULL) { + free(tmp); + return FALSE; + } /* no break: fall through */ case user_removepass: case group_removepass: @@ -1088,7 +1094,10 @@ lu_dispatch(struct lu_context *context, case users_enumerate_by_group: case groups_enumerate_by_user: /* Make sure we have both name and ID here. */ - g_return_val_if_fail(sdata != NULL, FALSE); + if (sdata == NULL) { + free(tmp); + return FALSE; + } if (id == users_enumerate_by_group) ldata = convert_group_name_to_id(context, sdata, error);