Signed-off-by: Warner Losh <[email protected]>
---
bsd-user/freebsd/os-time.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/bsd-user/freebsd/os-time.h b/bsd-user/freebsd/os-time.h
index d838994742..ed075b7df4 100644
--- a/bsd-user/freebsd/os-time.h
+++ b/bsd-user/freebsd/os-time.h
@@ -595,6 +595,7 @@ static inline abi_long do_freebsd_ppoll(CPUArchState *env,
abi_long arg1,
/* Unlike poll(), ppoll() uses struct timespec. */
if (arg3) {
if (t2h_freebsd_timespec(&ts, arg3)) {
+ unlock_user(target_pfd, arg1, 0);
return -TARGET_EFAULT;
}
ts_ptr = &ts;
@@ -605,6 +606,7 @@ static inline abi_long do_freebsd_ppoll(CPUArchState *env,
abi_long arg1,
if (arg4 != 0) {
p = lock_user(VERIFY_READ, arg4, sizeof(target_sigset_t), 1);
if (p == NULL) {
+ unlock_user(target_pfd, arg1, 0);
return -TARGET_EFAULT;
}
target_to_host_sigset(&tstate->sigsuspend_mask, p);
--
2.52.0