mirror of
https://github.com/ipmitool/ipmitool.git
synced 2025-05-11 19:17:22 +00:00
fix potential crash in cleanup code
This commit is contained in:
parent
ffd03bc964
commit
fe38fb4e7b
@ -134,7 +134,7 @@ ipmi_req_lookup_entry(uint8_t seq, uint8_t cmd)
|
|||||||
{
|
{
|
||||||
struct ipmi_rq_entry * e = ipmi_req_entries;
|
struct ipmi_rq_entry * e = ipmi_req_entries;
|
||||||
while (e && (e->rq_seq != seq || e->req.msg.cmd != cmd)) {
|
while (e && (e->rq_seq != seq || e->req.msg.cmd != cmd)) {
|
||||||
if (e == e->next)
|
if (e->next == NULL || e == e->next)
|
||||||
return NULL;
|
return NULL;
|
||||||
e = e->next;
|
e = e->next;
|
||||||
}
|
}
|
||||||
@ -183,10 +183,16 @@ ipmi_req_clear_entries(void)
|
|||||||
while (e) {
|
while (e) {
|
||||||
lprintf(LOG_DEBUG+3, "cleared list entry seq=0x%02x cmd=0x%02x",
|
lprintf(LOG_DEBUG+3, "cleared list entry seq=0x%02x cmd=0x%02x",
|
||||||
e->rq_seq, e->req.msg.cmd);
|
e->rq_seq, e->req.msg.cmd);
|
||||||
p = e->next;
|
if (e->next != NULL) {
|
||||||
free(e);
|
p = e->next;
|
||||||
e = p;
|
free(e);
|
||||||
|
e = p;
|
||||||
|
} else {
|
||||||
|
free(e);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
ipmi_req_entries = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
Loading…
x
Reference in New Issue
Block a user