public inbox for newlib@sourceware.org
 help / color / mirror / Atom feed
* [PATCH v2] Reclaim _REENT_MP_P5S in _reclaim_reent
@ 2023-11-20  1:04 chrisj
  2023-11-20 10:23 ` Corinna Vinschen
  0 siblings, 1 reply; 2+ messages in thread
From: chrisj @ 2023-11-20  1:04 UTC (permalink / raw)
  To: newlib; +Cc: Chris Johns

From: Chris Johns <chrisj@rtems.org>

The _REENT_MP_P5S blocks are allocated using Balloc via i2b and linked in the
pow5mult call. As a result these blocks are not on the freelist managed by the
Bfree call. This change fixes a memory leak in threads that clean up using
_reclaim_reent.

RTEMS: Closes #4967
---
 newlib/libc/reent/reent.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/newlib/libc/reent/reent.c b/newlib/libc/reent/reent.c
index db80ca06e..74503fa59 100644
--- a/newlib/libc/reent/reent.c
+++ b/newlib/libc/reent/reent.c
@@ -59,6 +59,17 @@ _reclaim_reent (struct _reent *ptr)
 	}
       if (_REENT_MP_RESULT(ptr))
 	_free_r (ptr, _REENT_MP_RESULT(ptr));
+      if (_REENT_MP_P5S(ptr))
+        {
+          struct _Bigint *thisone, *nextone;
+          nextone = _REENT_MP_P5S(ptr);
+          while (nextone)
+           {
+             thisone = nextone;
+             nextone = nextone->_next;
+             _free_r (ptr, thisone);
+           }
+        }
 #ifdef _REENT_SMALL
       }
 #endif
-- 
2.37.1


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH v2] Reclaim _REENT_MP_P5S in _reclaim_reent
  2023-11-20  1:04 [PATCH v2] Reclaim _REENT_MP_P5S in _reclaim_reent chrisj
@ 2023-11-20 10:23 ` Corinna Vinschen
  0 siblings, 0 replies; 2+ messages in thread
From: Corinna Vinschen @ 2023-11-20 10:23 UTC (permalink / raw)
  To: newlib

On Nov 20 12:04, chrisj@rtems.org wrote:
> From: Chris Johns <chrisj@rtems.org>
> 
> The _REENT_MP_P5S blocks are allocated using Balloc via i2b and linked in the
> pow5mult call. As a result these blocks are not on the freelist managed by the
> Bfree call. This change fixes a memory leak in threads that clean up using
> _reclaim_reent.
> 
> RTEMS: Closes #4967
> ---
>  newlib/libc/reent/reent.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)

Pushed.

Thanks,
Corinna


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-11-20 10:23 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-20  1:04 [PATCH v2] Reclaim _REENT_MP_P5S in _reclaim_reent chrisj
2023-11-20 10:23 ` Corinna Vinschen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).