[libvirt PATCH 04/19] commandhelper: Consolidate error paths
Peter Krempa
pkrempa at redhat.com
Fri Jan 29 17:17:36 UTC 2021
On Fri, Jan 29, 2021 at 17:16:14 +0100, Tim Wiederhake wrote:
> Preparation for later conversion to g_auto* memory handling.
>
> Signed-off-by: Tim Wiederhake <twiederh at redhat.com>
> ---
> tests/commandhelper.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/tests/commandhelper.c b/tests/commandhelper.c
> index 05e3879688..2be121ce2c 100644
> --- a/tests/commandhelper.c
> +++ b/tests/commandhelper.c
> @@ -61,7 +61,7 @@ int main(int argc, char **argv) {
> ssize_t got;
>
> if (!log)
> - return ret;
> + goto cleanup;
>
> for (i = 1; i < argc; i++) {
> fprintf(log, "ARG:%s\n", argv[i]);
> @@ -79,7 +79,7 @@ int main(int argc, char **argv) {
> }
>
> if (!(newenv = malloc(sizeof(*newenv) * n)))
> - abort();
> + goto cleanup;
Any reason for not converting this malloc to g_new directly? you get rid
of abort()/cleanup entirely.
Especially since the patches at the end of the series switch to
g_auto(ptr).
If there's a strong reason against using glibs allocators, in such case
the cleanups shouldn't be added either.
>
> for (i = 0; i < n; i++) {
> newenv[i] = environ[i];
> @@ -222,8 +222,10 @@ int main(int argc, char **argv) {
> cleanup:
> for (i = 0; i < G_N_ELEMENTS(buffers); i++)
> free(buffers[i]);
> - fclose(log);
> - free(newenv);
> + if (newenv)
> + free(newenv);
> + if (log)
> + fclose(log);
> return ret;
> }
>
> --
> 2.26.2
>
More information about the libvir-list
mailing list