X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fsystemd.git;a=blobdiff_plain;f=src%2Flibudev%2Flibudev-list.c;h=29fbdbd4509e7365875a8ef0f99b12c485b25c53;hp=59ba69e279a2d6edeb180194e37b360f06739e27;hb=53e1b683907c2f12330f00feb9630150196f064d;hpb=cf2292f5ac87087f57dbd632a25a332c9d194ebf diff --git a/src/libudev/libudev-list.c b/src/libudev/libudev-list.c index 59ba69e279a..29fbdbd4509 100644 --- a/src/libudev/libudev-list.c +++ b/src/libudev/libudev-list.c @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: LGPL-2.1+ */ /*** This file is part of systemd. @@ -17,14 +18,12 @@ along with systemd; If not, see . ***/ -#include -#include -#include -#include #include +#include +#include #include -#include "libudev.h" +#include "alloc-util.h" #include "libudev-private.h" /** @@ -95,14 +94,14 @@ static inline struct udev_list_entry *list_node_to_entry(struct udev_list_node * void udev_list_init(struct udev *udev, struct udev_list *list, bool unique) { - memset(list, 0x00, sizeof(struct udev_list)); + memzero(list, sizeof(struct udev_list)); list->udev = udev; list->unique = unique; udev_list_node_init(&list->node); } /* insert entry into a list as the last element */ -void udev_list_entry_append(struct udev_list_entry *new, struct udev_list *list) +static void udev_list_entry_append(struct udev_list_entry *new, struct udev_list *list) { /* inserting before the list head make the node the last node in the list */ udev_list_node_insert_between(&new->node, list->node.prev, &list->node); @@ -110,7 +109,7 @@ void udev_list_entry_append(struct udev_list_entry *new, struct udev_list *list) } /* insert entry into a list, before a given existing entry */ -void udev_list_entry_insert_before(struct udev_list_entry *new, struct udev_list_entry *entry) +static void udev_list_entry_insert_before(struct udev_list_entry *new, struct udev_list_entry *entry) { udev_list_node_insert_between(&new->node, entry->node.prev, &entry->node); new->list = entry->list; @@ -165,20 +164,19 @@ struct udev_list_entry *udev_list_entry_add(struct udev_list *list, const char * } /* add new name */ - entry = calloc(1, sizeof(struct udev_list_entry)); + entry = new0(struct udev_list_entry, 1); if (entry == NULL) return NULL; + entry->name = strdup(name); - if (entry->name == NULL) { - free(entry); - return NULL; - } + if (entry->name == NULL) + return mfree(entry); + if (value != NULL) { entry->value = strdup(value); if (entry->value == NULL) { free(entry->name); - free(entry); - return NULL; + return mfree(entry); } } @@ -195,8 +193,7 @@ struct udev_list_entry *udev_list_entry_add(struct udev_list *list, const char * if (entries == NULL) { free(entry->name); free(entry->value); - free(entry); - return NULL; + return mfree(entry); } list->entries = entries; list->entries_max += add; @@ -249,8 +246,7 @@ void udev_list_cleanup(struct udev_list *list) struct udev_list_entry *entry_loop; struct udev_list_entry *entry_tmp; - free(list->entries); - list->entries = NULL; + list->entries = mfree(list->entries); list->entries_cur = 0; list->entries_max = 0; udev_list_entry_foreach_safe(entry_loop, entry_tmp, udev_list_get_entry(list))