This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug dynamic-link/18035] New: pldd does no longer work, enters infinite loop
- From: "fweimer at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Thu, 26 Feb 2015 14:18:47 +0000
- Subject: [Bug dynamic-link/18035] New: pldd does no longer work, enters infinite loop
- Auto-submitted: auto-generated
https://sourceware.org/bugzilla/show_bug.cgi?id=18035
Bug ID: 18035
Summary: pldd does no longer work, enters infinite loop
Product: glibc
Version: 2.20
Status: NEW
Severity: normal
Priority: P2
Component: dynamic-link
Assignee: unassigned at sourceware dot org
Reporter: fweimer at redhat dot com
Flags: security-
This just hangs:
$ pldd $$
17928: /usr/bin/bash
It loops around in pldd-xx.c, here (line numbers are from glibc 2.20 in Fedora
21):
201 again:
202 while (1)
203 {
204 ssize_t n = pread64 (memfd, str, strsize, name_offset);
205 if (n == -1)
206 {
207 error (0, 0, gettext ("cannot read object name"));
208 return EXIT_FAILURE;
209 }
210
211 if (memchr (str, '\0', n) != NULL)
212 break;
213
214 str = extend_alloca (str, strsize, strsize * 2);
215 }
216
217 if (str[0] == '\0' && name_offset == m.l_name
218 && m.l_libname != 0)
219 {
220 /* Try the l_libname element. */
221 struct E(libname_list) ln;
222 if (pread64 (memfd, &ln, sizeof (ln), m.l_libname) == sizeof (ln))
223 {
224 name_offset = ln.name;
225 goto again;
226 }
227 }
(I see a similar issue in master.)
--
You are receiving this mail because:
You are on the CC list for the bug.