From 2c756d14356b2e5b95e10fad59224d9f6b29bf36 Mon Sep 17 00:00:00 2001 From: MasaGratoR Date: Mon, 3 Apr 2023 01:31:40 +0200 Subject: [PATCH] Check if src_addr is possible to free --- nx/source/kernel/tmem.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/nx/source/kernel/tmem.c b/nx/source/kernel/tmem.c index cbf1aeb1..8bdc1dd8 100644 --- a/nx/source/kernel/tmem.c +++ b/nx/source/kernel/tmem.c @@ -114,6 +114,21 @@ Result tmemClose(TransferMemory* t) } if (t->src_addr != NULL) { + if ((t->perm & Perm_Rw) != Perm_Rw) { + MemoryInfo m = {0}; + u32 p = 0; + rc = svcQueryMemory(&m, &p, (u64)(t->src_addr)); + if (R_FAILED(rc)) { + return rc; + } + while ((m.perm & Perm_Rw) != Perm_Rw) { + rc = svcQueryMemory(&m, &p, (u64)(t->src_addr)); + if (R_FAILED(rc)) { + return rc; + } + svcSleepThread(100000); + } + } __libnx_free(t->src_addr); }