This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug dynamic-link/18035] New: pldd does no longer work, enters infinite loop


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.


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