Launchpad has imported 3 comments from the remote bug at
http://sourceware.org/bugzilla/show_bug.cgi?id=1363.

If you reply to an imported comment from within Launchpad, your comment
will be sent to the remote bug automatically. Read more about
Launchpad's inter-bugtracker facilities at
https://help.launchpad.net/InterBugTracking.

------------------------------------------------------------------------
On 2005-09-22T14:18:28+00:00 Kees-verruijt-redwood wrote:

nscd_getpw_r() will free() on a static buffer passed in to it when called by
getpwnam() and friends.

This can be seen by simple code inspection in nscd/nscd_getpw_r.c.
(discussion is based on CVS version 1.30 which is the current MAIN). The
following excerpt are a few lines of nscd/nscd_getpw_r.c:

86:nscd_getpw_r (...)
96: retry:;
142:   resultbuf->pw_uid = pw_resp->pw_uid;
203:   if (__nscd_drop_map_ref (mapped, &gc_cycle) != 0 && retval != -1)
230:     free (resultbuf);
232:     goto retry;

The above shows that if there has been a GC cycle that resultbuf is freed and
then reused in the next retry. That's incorrect. It is also incorrect in that
resultbuf is passed in, and it can be a buffer that's not from the heap. 

This turns up in a simple getpwnam() call made during a GC cycle. This tries to
free the resbuf in getpwnam and thus dumps core.

Suggested fix: remove free(resultbuf) (line 230).

Reply at: https://bugs.launchpad.net/glibc/+bug/327705/comments/0

------------------------------------------------------------------------
On 2005-09-22T14:30:22+00:00 Kees-verruijt-redwood wrote:

Created attachment 665
glibc_1363_testcase1.c

C source that might coredump; it just calls getpwnam() on different
non-existing users. It coredumps the first call after the nscd daemon does GC.

This is easiest to see by running the attached program and "nscd -d -d -d -d"
in two adjacent sessions. As soon as I see "remove GETPWBYNAME entry ".....""
by nscd the test program aborts.

(Originally found on SuSE 9.3 x86_64 w/ glibc-2.3.4-23.4)

Reply at: https://bugs.launchpad.net/glibc/+bug/327705/comments/1

------------------------------------------------------------------------
On 2005-09-22T14:37:02+00:00 Drepper-fsp wrote:

Fixed on CVS trunk.

Reply at: https://bugs.launchpad.net/glibc/+bug/327705/comments/2


** Changed in: glibc
   Importance: Unknown => Medium

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/327705

Title:
  nscd_getpw_r in libc6 crashes due to invalid free()

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to