mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-16 14:08:45 +00:00
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: Joe Hershberger <joe.hershberger@ni.com>
This commit is contained in:
parent
4bf56913d0
commit
3cacc6a772
1 changed files with 5 additions and 2 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue