This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Bugs in glibc 2.2


On Sat, May 20, 2000 at 04:46:18PM -0700, H . J . Lu wrote:
> Hi,
> 
> I am working on several bugs in glibc 2.2. I had an impression that
> glibc 2.2 was very unstable. I was wondering how many people were
> using glibc 2.2. To start,
> 
> There are
> 
> struct __res_state _res;
> 
> and
> 
> void
> res_close(void) {
>         res_nclose(&_res);
> }
> 
> void
> res_nclose(res_state statp) {
>         if (statp->_sock >= 0) {
>                 (void) close(statp->_sock);
>                 statp->_sock = -1;
>                 statp->_flags &= ~(RES_F_VC | RES_F_CONN);
>         }
> }
> 
> since _res._sock is 0, close (0) is called. It is very bad
> when 0 may be a valid fd for something else. There are other

Here is the patch.

H.J.
---
2000-05-20 2000  H.J. Lu  <hjl@gnu.org>

	* resolv/res_libc.c (_res): Initialize _sock to -1.

Index: resolv/res_libc.c
===================================================================
RCS file: /work/cvs/gnu/glibc/resolv/res_libc.c,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 res_libc.c
--- resolv/res_libc.c	2000/04/29 18:47:48	1.1.1.1
+++ resolv/res_libc.c	2000/05/21 05:22:40
@@ -89,7 +89,7 @@ res_init(void) {
 
 #undef _res
 
-struct __res_state _res;
+struct __res_state _res = { _sock : -1 };
 
 
 struct __res_state *


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]