diff --git a/src/event.c b/src/event.c index 8212c02..492611a 100644 --- a/src/event.c +++ b/src/event.c @@ -106,6 +106,10 @@ void event_init(pblog_Event *event) { memset(event, 0, sizeof(*event)); } void event_free(pblog_Event *event) { int i = 0; + + if (event == NULL) + return; + for (i = 0; i < event->data_count; ++i) { free(event->data[i].key.arg); event->data[i].key.arg = NULL; diff --git a/src/nvram.c b/src/nvram.c index 36a6846..b8dbf4c 100644 --- a/src/nvram.c +++ b/src/nvram.c @@ -80,6 +80,9 @@ static const struct nvram_entry *find_key(const struct nvram_entry *entries, } void nvram_entry_free(struct nvram_entry *entry) { + if (entry == NULL) + return; + free(entry->key); free(entry->data); } @@ -127,6 +130,10 @@ static int nvram_enumerate(struct nvram *nvram, struct nvram_entry **entries) { void nvram_list_free(struct nvram_entry **entries) { struct nvram_entry *entry; + + if (*entries == NULL) + return; + for (entry = *entries; entry && entry->key != NULL; entry++) { nvram_entry_free(entry); } diff --git a/src/pblog.c b/src/pblog.c index 705be51..b63006e 100644 --- a/src/pblog.c +++ b/src/pblog.c @@ -317,7 +317,12 @@ int pblog_init(struct pblog *pblog, int allow_clear_on_add, } void pblog_free(struct pblog *pblog) { - struct pblog_metadata *meta = pblog->priv; + struct pblog_metadata *meta; + + if (pblog == NULL) + return; + + meta = pblog->priv; record_intf_free(meta->mem_ri); free(meta->mem_ri); pblog_mem_ops.priv = NULL; diff --git a/src/record.c b/src/record.c index c39c10d..9c06730 100644 --- a/src/record.c +++ b/src/record.c @@ -459,7 +459,12 @@ int record_intf_init(record_intf *ri, const struct record_region *regions, } void record_intf_free(record_intf *ri) { - struct log_metadata *meta = ri->priv; + struct log_metadata *meta; + + if (ri == NULL) + return; + + meta = ri->priv; free(meta->regions); free(meta); }