adb: avoid sign extension of shell return code.
Windows has int32_t return codes, which results in return codes 128-255 being sign extended into a negative number. Manually truncate the return codes we get to preserve their values. Test: test_device.py on windows Change-Id: If41d6d469350301704f6ecff72ad17b412db3e04
This commit is contained in:
parent
eecd5cc532
commit
1e1ae45a8c
1 changed files with 4 additions and 1 deletions
|
@ -295,7 +295,10 @@ int read_and_dump(int fd, bool use_shell_protocol = false,
|
|||
callback->OnStderr(buffer_ptr, length);
|
||||
break;
|
||||
case ShellProtocol::kIdExit:
|
||||
exit_code = protocol->data()[0];
|
||||
// data() returns a char* which doesn't have defined signedness.
|
||||
// Cast to uint8_t to prevent 255 from being sign extended to INT_MIN,
|
||||
// which doesn't get truncated on Windows.
|
||||
exit_code = static_cast<uint8_t>(protocol->data()[0]);
|
||||
continue;
|
||||
default:
|
||||
continue;
|
||||
|
|
Loading…
Reference in a new issue