Do tego kto zajmuje sie glibcem
Grzegorz Stanislawski
stangrze w open.net.pl
Pon, 12 Paź 1998, 22:25:32 CEST
Witam.
To pewnie wazna sprawa wiec pozwolilem sobie na forward.
Grzegorz Stanislawski
Open-Net / PKFL
---------- Forwarded message ----------
Date: Mon, 12 Oct 1998 12:50:08 -0700 (PDT)
From: "Victor E. Kamensky" <victor w engr.engr.leemah.com>
Reply-To: pam-list w redhat.com
To: pam-list w redhat.com
Subject: Re: What is wrong with this program?
Resent-Date: 12 Oct 1998 19:45:10 -0000
Resent-From: pam-list w redhat.com
Resent-cc: recipient list not shown: ;
Hi, gnu.org glibc group have changed 'libdl memory leak' ticket status to
'closed'. Please find attached final patch which have been applied to
glibc2. It is done relatively glibc-2.0.7-19.src.rpm RedHat SRPM. If this
patch is applied Andrew's libdl test program and Mihai's pwchecker PAM
test program does not produce memory leak.
Regards, Victor Kamensky
---------- Forwarded message ----------
Date: Sun, 11 Oct 1998 15:11:13 -0400
From: Andreas Jaeger <jaeger w gnu.org>
To: GNU libc gnats list <libc-gnats w gnu.org>,
"Victor E. Kamensky" <victor w engr.engr.leemah.com>
Subject: Re: libc/820: memory leak in Linux libdl (libc)
`Andreas Jaeger' changed the state to `closed'.
State-Changed-From-To: open-closed
State-Changed-By: jaeger
State-Changed-When: Sun Oct 11 15:09:59 1998
State-Changed-Why:
Thanks Victor for your messages. The patches Uli and I've send you
have been applied to glibc2.
Andreas
--
Andreas Jaeger aj w arthur.rhein-neckar.de jaeger w gnu.org
-------------- następna część ---------
diff -c -r elf/dl-close.c ../glibc-2.0.7/elf/dl-close.c
*** elf/dl-close.c Thu May 21 17:00:34 1998
--- ../glibc-2.0.7/elf/dl-close.c Tue Oct 13 03:25:09 1998
***************
*** 114,123 ****
--- 114,134 ----
/* Finally, unlink the data structure and free it. */
if (imap->l_prev)
imap->l_prev->l_next = imap->l_next;
+ else
+ {
+ if (_dl_global_scope[2] == imap)
+ _dl_global_scope[2] = imap->l_next;
+ _dl_loaded = imap->l_next;
+ }
if (imap->l_next)
imap->l_next->l_prev = imap->l_prev;
+ if (imap->l_dupsearchlist
+ && imap->l_dupsearchlist != imap->l_searchlist)
+ free (imap->l_dupsearchlist);
if (imap->l_searchlist && imap->l_searchlist != list)
free (imap->l_searchlist);
+ free (imap->l_name);
+ free ((char *) imap->l_libname);
free (imap);
}
}
diff -c -r elf/dl-open.c ../glibc-2.0.7/elf/dl-open.c
*** elf/dl-open.c Tue Mar 31 11:24:02 1998
--- ../glibc-2.0.7/elf/dl-open.c Tue Oct 13 03:25:03 1998
***************
*** 110,120 ****
_dl_close (new);
_dl_signal_error (ENOMEM, file, "cannot extend global scope");
}
! _dl_global_scope[2] = _dl_default_scope[2];
! _dl_global_scope[3] = new;
! _dl_global_scope[4] = NULL;
! _dl_global_scope[5] = NULL;
! _dl_global_scope_end = &_dl_global_scope [4];
}
else
{
--- 110,132 ----
_dl_close (new);
_dl_signal_error (ENOMEM, file, "cannot extend global scope");
}
!
! if (_dl_default_scope[2] == new)
! {
! /* This happens when loading in static binaries. */
! _dl_global_scope[2] = new;
! _dl_global_scope[3] = NULL;
! _dl_global_scope[4] = NULL;
! _dl_global_scope_end = &_dl_global_scope[3];
! }
! else
! {
! _dl_global_scope[2] = _dl_default_scope[2];
! _dl_global_scope[3] = new;
! _dl_global_scope[4] = NULL;
! _dl_global_scope[5] = NULL;
! _dl_global_scope_end = &_dl_global_scope[4];
! }
}
else
{
Więcej informacji o liście dyskusyjnej pld-devel-pl