mirror of https://gitee.com/openkylin/qemu.git
linux-user: Use g_try_malloc() in do_msgrcv()
In do_msgrcv() we want to allocate a message buffer, whose size is passed to us by the guest. That means we could legitimately fail, so use g_try_malloc() and handle the error case, in the same way that do_msgsnd() does. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
This commit is contained in:
parent
99874f6552
commit
415d847110
|
@ -3167,7 +3167,11 @@ static inline abi_long do_msgrcv(int msqid, abi_long msgp,
|
|||
if (!lock_user_struct(VERIFY_WRITE, target_mb, msgp, 0))
|
||||
return -TARGET_EFAULT;
|
||||
|
||||
host_mb = g_malloc(msgsz+sizeof(long));
|
||||
host_mb = g_try_malloc(msgsz + sizeof(long));
|
||||
if (!host_mb) {
|
||||
ret = -TARGET_ENOMEM;
|
||||
goto end;
|
||||
}
|
||||
ret = get_errno(msgrcv(msqid, host_mb, msgsz, msgtyp, msgflg));
|
||||
|
||||
if (ret > 0) {
|
||||
|
|
Loading…
Reference in New Issue