From: Nicolas Derumigny Date: Sat, 15 Oct 2016 20:06:24 +0000 (-0500) Subject: syscall: read() should not write anything if reading EOF. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=976ef444b83d9c2ab1cff5cf95434d349e3c3161;p=gem5.git syscall: read() should not write anything if reading EOF. Read() should not write anything when returning 0 (EOF). This patch does not correct the same bug occuring for : nbr_read=read(file, buf, nbytes) When nbr_read --- diff --git a/src/sim/syscall_emul.cc b/src/sim/syscall_emul.cc index 392658c5a..e62a8686a 100644 --- a/src/sim/syscall_emul.cc +++ b/src/sim/syscall_emul.cc @@ -245,7 +245,7 @@ readFunc(SyscallDesc *desc, int num, LiveProcess *p, ThreadContext *tc) int bytes_read = read(sim_fd, bufArg.bufferPtr(), nbytes); - if (bytes_read != -1) + if (bytes_read > 0) bufArg.copyOut(tc->getMemProxy()); return bytes_read;