OpenIPMI/lanserv-Add-the-judgment-on-the-validity-of-length-in-emu_cmd.c-and-session-in-lanserv_ipmi.c.patch

38 lines
1.2 KiB
Diff

From: zhangqiumiao <zhangqiumiao1@huawei.com>
Subject: lanserv: Add the judgment on the validity of length in emu_cmd.c and session in lanserv_ipmi.c
References:
Patch-Mainline:
Git-commit: 35525f7903bdbfe98c1b101f2c30afd78fbdda98
Git-repo: https://git.code.sf.net/p/openipmi/code.git
Signed-off-by: <trenn@suse.com>
diff --git a/lanserv/emu_cmd.c b/lanserv/emu_cmd.c
index ea3f8685..727bb0c8 100644
--- a/lanserv/emu_cmd.c
+++ b/lanserv/emu_cmd.c
@@ -913,6 +913,9 @@ mc_add_fru_data(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
if (rv)
return rv;
+ if (length > MAX_FRU_SIZE)
+ return EINVAL;
+
tok = mystrtok(NULL, " \t\n", toks);
if (!tok) {
out->eprintf(out, "**No FRU data type given");
diff --git a/lanserv/lanserv_ipmi.c b/lanserv/lanserv_ipmi.c
index 4005bcba..ccd60015 100644
--- a/lanserv/lanserv_ipmi.c
+++ b/lanserv/lanserv_ipmi.c
@@ -3143,7 +3143,7 @@ get_associated_mc(channel_t *chan, uint32_t session_id, unsigned int payload)
lanserv_data_t *lan = chan->chan_info;
session_t *session = sid_to_session(lan, session_id);
- if (payload >= LANSERV_NUM_CLOSERS)
+ if (payload >= LANSERV_NUM_CLOSERS || session == NULL)
return NULL;
return session->closers[payload].mc;