From fe38fb4e7b9578a53343f83fa73fbf0004d3cf4b Mon Sep 17 00:00:00 2001 From: Duncan Laurie Date: Thu, 16 Jun 2005 16:58:11 +0000 Subject: [PATCH] fix potential crash in cleanup code --- ipmitool/src/plugins/lan/lan.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/ipmitool/src/plugins/lan/lan.c b/ipmitool/src/plugins/lan/lan.c index cbea472..9d17d96 100644 --- a/ipmitool/src/plugins/lan/lan.c +++ b/ipmitool/src/plugins/lan/lan.c @@ -134,7 +134,7 @@ ipmi_req_lookup_entry(uint8_t seq, uint8_t cmd) { struct ipmi_rq_entry * e = ipmi_req_entries; while (e && (e->rq_seq != seq || e->req.msg.cmd != cmd)) { - if (e == e->next) + if (e->next == NULL || e == e->next) return NULL; e = e->next; } @@ -183,10 +183,16 @@ ipmi_req_clear_entries(void) while (e) { lprintf(LOG_DEBUG+3, "cleared list entry seq=0x%02x cmd=0x%02x", e->rq_seq, e->req.msg.cmd); - p = e->next; - free(e); - e = p; + if (e->next != NULL) { + p = e->next; + free(e); + e = p; + } else { + free(e); + break; + } } + ipmi_req_entries = NULL; } static int