Fix bugs with syscall trace record data copies
authorBarret Rhoden <brho@cs.berkeley.edu>
Mon, 28 Sep 2015 20:50:49 +0000 (16:50 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 8 Oct 2015 14:29:57 +0000 (10:29 -0400)
commit778f1bae957091b87093b77ec6ac2ff372c8e932
tree79119a9473852c15e708e369a90f57ee080ad36c
parent9483bbd826b1be01fda5e047cae8fd6f59be0b80
Fix bugs with syscall trace record data copies

openat()'s trace was using path_l, instead of the MIN of path_l and the
buffer size.  Whoops - you'd overflow the buffer and cause all sorts of
problems (and only when tracing!).

write()'s trace was using ret, which could be -1.  We want to capture
what was attempted to be written, regardless of failure.  That's 'len',
not ret.

There's also no reason to use memmove.  We know the buffer for the trace
is distinct from its input.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/src/syscall.c