X-Git-Url: https://repo.jachan.dev/qemu.git/blobdiff_plain/041ccc922ee474693a2869d4e3b59e920c739bc0..ee13240e60a02836426140d384e363be5d8f8bbe:/util/envlist.c diff --git a/util/envlist.c b/util/envlist.c index 099a544a41..2bcc13f094 100644 --- a/util/envlist.c +++ b/util/envlist.c @@ -1,4 +1,4 @@ -#include "qemu-common.h" +#include "qemu/osdep.h" #include "qemu/queue.h" #include "qemu/envlist.h" @@ -16,16 +16,14 @@ static int envlist_parse(envlist_t *envlist, const char *env, int (*)(envlist_t *, const char *)); /* - * Allocates new envlist and returns pointer to that or - * NULL in case of error. + * Allocates new envlist and returns pointer to it. */ envlist_t * envlist_create(void) { envlist_t *envlist; - if ((envlist = malloc(sizeof (*envlist))) == NULL) - return (NULL); + envlist = g_malloc(sizeof(*envlist)); QLIST_INIT(&envlist->el_entries); envlist->el_count = 0; @@ -47,10 +45,10 @@ envlist_free(envlist_t *envlist) entry = envlist->el_entries.lh_first; QLIST_REMOVE(entry, ev_link); - free((char *)entry->ev_var); - free(entry); + g_free((char *)entry->ev_var); + g_free(entry); } - free(envlist); + g_free(envlist); } /* @@ -100,8 +98,7 @@ envlist_parse(envlist_t *envlist, const char *env, if ((envlist == NULL) || (env == NULL)) return (EINVAL); - if ((tmpenv = strdup(env)) == NULL) - return (errno); + tmpenv = g_strdup(env); envsave = tmpenv; do { @@ -116,7 +113,7 @@ envlist_parse(envlist_t *envlist, const char *env, tmpenv = envvar + 1; } while (envvar != NULL); - free(envsave); + g_free(envsave); return ret; } @@ -154,18 +151,14 @@ envlist_setenv(envlist_t *envlist, const char *env) if (entry != NULL) { QLIST_REMOVE(entry, ev_link); - free((char *)entry->ev_var); - free(entry); + g_free((char *)entry->ev_var); + g_free(entry); } else { envlist->el_count++; } - if ((entry = malloc(sizeof (*entry))) == NULL) - return (errno); - if ((entry->ev_var = strdup(env)) == NULL) { - free(entry); - return (errno); - } + entry = g_malloc(sizeof(*entry)); + entry->ev_var = g_strdup(env); QLIST_INSERT_HEAD(&envlist->el_entries, entry, ev_link); return (0); @@ -200,8 +193,8 @@ envlist_unsetenv(envlist_t *envlist, const char *env) } if (entry != NULL) { QLIST_REMOVE(entry, ev_link); - free((char *)entry->ev_var); - free(entry); + g_free((char *)entry->ev_var); + g_free(entry); envlist->el_count--; } @@ -211,12 +204,12 @@ envlist_unsetenv(envlist_t *envlist, const char *env) /* * Returns given envlist as array of strings (in same form that * global variable environ is). Caller must free returned memory - * by calling free(3) for each element and for the array. Returned - * array and given envlist are not related (no common references). + * by calling g_free for each element and the array. + * Returned array and given envlist are not related (no common + * references). * * If caller provides count pointer, number of items in array is - * stored there. In case of error, NULL is returned and no memory - * is allocated. + * stored there. */ char ** envlist_to_environ(const envlist_t *envlist, size_t *count) @@ -224,13 +217,11 @@ envlist_to_environ(const envlist_t *envlist, size_t *count) struct envlist_entry *entry; char **env, **penv; - penv = env = malloc((envlist->el_count + 1) * sizeof (char *)); - if (env == NULL) - return (NULL); + penv = env = g_malloc((envlist->el_count + 1) * sizeof(char *)); for (entry = envlist->el_entries.lh_first; entry != NULL; entry = entry->ev_link.le_next) { - *(penv++) = strdup(entry->ev_var); + *(penv++) = g_strdup(entry->ev_var); } *penv = NULL; /* NULL terminate the list */