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