Fix previous Linux userland emulation breakage.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2423 c046a42c-6fe2-441c-8c8c-71466251a162
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 5020f3f..3506ece 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -2952,7 +2952,9 @@
#endif
case TARGET_NR_syslog:
- ret = get_errno(sys_syslog((int)arg1, (char*)arg2, (int)arg3));
+ p = lock_user_string(arg2);
+ ret = get_errno(sys_syslog((int)arg1, p, (int)arg3));
+ unlock_user(p, arg2, 0);
break;
case TARGET_NR_setitimer:
@@ -3423,7 +3425,20 @@
case TARGET_NR_nfsservctl:
goto unimplemented;
case TARGET_NR_prctl:
- ret = get_errno(prctl(arg1, arg2, arg3, arg4, arg5));
+ switch (arg1)
+ {
+ case PR_GET_PDEATHSIG:
+ {
+ int deathsig;
+ ret = get_errno(prctl(arg1, &deathsig, arg3, arg4, arg5));
+ if (!is_error(ret) && arg2)
+ tput32(arg2, deathsig);
+ }
+ break;
+ default:
+ ret = get_errno(prctl(arg1, arg2, arg3, arg4, arg5));
+ break;
+ }
break;
#ifdef TARGET_NR_pread
case TARGET_NR_pread: