Skip to content

Commit 976c417

Browse files
wyr-7GUIDINGLI
authored andcommitted
rpmsg_ping.c: fix msg data memset length
The range of memset exceeds the size of the buffer Signed-off-by: Yongrong Wang <[email protected]>
1 parent 4b77dd0 commit 976c417

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

drivers/rpmsg/rpmsg_ping.c

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,6 @@ static int rpmsg_ping_ept_cb(FAR struct rpmsg_endpoint *ept,
101101
i, data_len);
102102
break;
103103
}
104-
105-
msg->data[i] = 0;
106104
}
107105
}
108106

@@ -132,9 +130,6 @@ static int rpmsg_ping_once(FAR struct rpmsg_endpoint *ept, int len,
132130
return -ENOMEM;
133131
}
134132

135-
len = MAX(len, sizeof(struct rpmsg_ping_msg_s));
136-
len = MIN(len, *buf_len);
137-
138133
msg->cmd = cmd;
139134

140135
if ((msg->cmd & RPMSG_PING_RANDOMLEN_MASK) != 0)
@@ -146,13 +141,16 @@ static int rpmsg_ping_once(FAR struct rpmsg_endpoint *ept, int len,
146141
msg->len = len;
147142
}
148143

144+
msg->len = MAX(msg->len, sizeof(struct rpmsg_ping_msg_s));
145+
msg->len = MIN(msg->len, *buf_len);
146+
149147
if ((msg->cmd & RPMSG_PING_CHECK_MASK) != 0)
150148
{
151149
memset(msg->data, i, msg->len - sizeof(struct rpmsg_ping_msg_s) + 1);
152150
}
153151
else
154152
{
155-
memset(msg->data, 0, msg->len);
153+
memset(msg->data, 0, msg->len - sizeof(struct rpmsg_ping_msg_s) + 1);
156154
}
157155

158156
if ((msg->cmd & RPMSG_PING_ACK_MASK) != 0)

0 commit comments

Comments
 (0)