mirror of
https://github.com/freebsd/freebsd-src
synced 2024-07-21 10:19:04 +00:00
bhyve: Avoid underflows when handling remote commands
Reviewed by: corvink, jhb MFC after: 1 week Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D43480
This commit is contained in:
parent
380b7eb309
commit
cfa2c78aee
|
@ -1052,6 +1052,8 @@ gdb_read_mem(const uint8_t *data, size_t len)
|
|||
bool started;
|
||||
int error;
|
||||
|
||||
assert(len >= 1);
|
||||
|
||||
/* Skip 'm' */
|
||||
data += 1;
|
||||
len -= 1;
|
||||
|
@ -1163,6 +1165,8 @@ gdb_write_mem(const uint8_t *data, size_t len)
|
|||
size_t resid, todo, bytes;
|
||||
int error;
|
||||
|
||||
assert(len >= 1);
|
||||
|
||||
/* Skip 'M' */
|
||||
data += 1;
|
||||
len -= 1;
|
||||
|
@ -1557,7 +1561,7 @@ gdb_query(const uint8_t *data, size_t len)
|
|||
|
||||
data += strlen("qThreadExtraInfo");
|
||||
len -= strlen("qThreadExtraInfo");
|
||||
if (*data != ',') {
|
||||
if (len == 0 || *data != ',') {
|
||||
send_error(EINVAL);
|
||||
return;
|
||||
}
|
||||
|
@ -1608,7 +1612,7 @@ handle_command(const uint8_t *data, size_t len)
|
|||
case 'H': {
|
||||
int tid;
|
||||
|
||||
if (data[1] != 'g' && data[1] != 'c') {
|
||||
if (len < 2 || (data[1] != 'g' && data[1] != 'c')) {
|
||||
send_error(EINVAL);
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue