ARM semihosting: fix EOF handling with SYS_READ
The semihosting interface has a strange convention for read/write where the unused amount of buffer must be returned. We failed to return the total buffer size when the local read() call returned 0. Signed-off-by: Nicolas Pitre <nico@marvell.com>
This commit is contained in:
parent
bef37ceba2
commit
3d2d5dcc9c
|
@ -190,7 +190,7 @@ static int do_semihosting(struct target *target)
|
|||
} else {
|
||||
result = read(fd, buf, l);
|
||||
armv4_5->semihosting_errno = errno;
|
||||
if (result > 0) {
|
||||
if (result >= 0) {
|
||||
retval = target_write_buffer(target, a, result, buf);
|
||||
if (retval != ERROR_OK) {
|
||||
free(buf);
|
||||
|
|
Loading…
Reference in New Issue