2008-04-19  Dmitry V. Levin <ldv@altlinux.org>

	* desc.c (sys_fcntl): Do not initialize auxstr for failed syscall.
	* process.c (sys_fork, sys_rfork) [USE_PROCFS]: Likewise.
	* signal.c (sys_signal): Likewise.
	* stream.c (internal_stream_ioctl): Likewise.
	* time.c (sys_adjtimex): Likewise.
	* syscall.c (trace_syscall): If RVAL_STR is set, then
	print auxstr for failed syscall as well.
diff --git a/process.c b/process.c
index bb6164f..cd938e5 100644
--- a/process.c
+++ b/process.c
@@ -498,7 +498,7 @@
 sys_fork(tcp)
 struct tcb *tcp;
 {
-	if (exiting(tcp)) {
+	if (exiting(tcp) && !syserror(tcp)) {
 		if (getrval2(tcp)) {
 			tcp->auxstr = "child process";
 			return RVAL_UDECIMAL | RVAL_STR;
@@ -516,7 +516,7 @@
 	if (entering(tcp)) {
 		tprintf ("%ld", tcp->u_arg[0]);
 	}
-	else {
+	else if (!syserror(tcp)) {
 		if (getrval2(tcp)) {
 			tcp->auxstr = "child process";
 			return RVAL_UDECIMAL | RVAL_STR;