X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibudev%2Flibudev-list.c;h=59ba69e279a2d6edeb180194e37b360f06739e27;hb=491d152dbddb85bc8c309ba24133c99219c8d300;hp=1578aecaae13379e1ef9c7500e2c324c66f18f03;hpb=88a6477ef32ac4c59111f7340525714a6e02e503;p=elogind.git diff --git a/src/libudev/libudev-list.c b/src/libudev/libudev-list.c index 1578aecaa..59ba69e27 100644 --- a/src/libudev/libudev-list.c +++ b/src/libudev/libudev-list.c @@ -185,18 +185,20 @@ struct udev_list_entry *udev_list_entry_add(struct udev_list *list, const char * if (list->unique) { /* allocate or enlarge sorted array if needed */ if (list->entries_cur >= list->entries_max) { + struct udev_list_entry **entries; unsigned int add; add = list->entries_max; if (add < 1) add = 64; - list->entries = realloc(list->entries, (list->entries_max + add) * sizeof(struct udev_list_entry *)); - if (list->entries == NULL) { + entries = realloc(list->entries, (list->entries_max + add) * sizeof(struct udev_list_entry *)); + if (entries == NULL) { free(entry->name); free(entry->value); free(entry); return NULL; } + list->entries = entries; list->entries_max += add; }