Memory leak in the resolver (threads)

Daniel Jacobowitz drow@mvista.com
Sun Feb 23 03:24:00 GMT 2003


On Fri, Feb 21, 2003 at 09:12:51PM -0800, Roland McGrath wrote:
> This problem should be fixed in the glibc sources now.  I haven't written a
> test program to reproduce the leak, so I haven't actually tested that it's
> truly fixed.  

It appears that way.  Here's a testcase; shows one memory leak with my
system glibc, and none with a glibc CVS build from this afternoon.
Needs to be linked with libresolv, naturally.

/* Tests for res_query in libresolv
   Copyright (C) 2003 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, write to the Free
   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
   02111-1307 USA.  */

#include <netinet/in.h>
#include <arpa/nameser.h>
#include <resolv.h>

/* Prototype for our test function.  */
extern int do_test (int argc, char *argv[]);

/* This defines the `main' function and some more.  */
#include <test-skeleton.c>

int
do_test (int argc, char *argv[])
{
  unsigned char buf[256];

  mtrace();

  /* This will allocate some memory, which should be automatically
     freed at exit.  */
  res_query ("1.0.0.127.in-addr.arpa.", C_ANY, T_ANY, buf, 256);

  return 0;
}

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer



More information about the Libc-alpha mailing list