提交 3cacc6a7 编写于 作者: J Joe Hershberger

net: Fix buffer overrun error in netconsole

Need to not access the byte after the input_buffer.

Reported-by: Coverity (CID: 144423)
Signed-off-by: NJoe Hershberger <joe.hershberger@ni.com>
上级 4bf56913
......@@ -153,14 +153,17 @@ int nc_input_packet(uchar *pkt, struct in_addr src_ip, unsigned dest_port,
len = sizeof(input_buffer) - input_size;
end = input_offset + input_size;
if (end > sizeof(input_buffer))
if (end >= sizeof(input_buffer))
end -= sizeof(input_buffer);
chunk = len;
if (end + len > sizeof(input_buffer)) {
/* Check if packet will wrap in input_buffer */
if (end + len >= sizeof(input_buffer)) {
chunk = sizeof(input_buffer) - end;
/* Copy the second part of the pkt to start of input_buffer */
memcpy(input_buffer, pkt + chunk, len - chunk);
}
/* Copy first (or only) part of pkt after end of current valid input*/
memcpy(input_buffer + end, pkt, chunk);
input_size += len;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册