public inbox for libc-ports@sourceware.org
 help / color / mirror / Atom feed
From: Chris Metcalf <cmetcalf@tilera.com>
To: <libc-ports@sourceware.org>, "David S. Miller" <davem@davemloft.net>
Subject: [COMMITTED PATCH] tile BZ #15759: Fix bug in _dl_unmap
Date: Mon, 22 Jul 2013 16:02:00 -0000	[thread overview]
Message-ID: <201307221602.r6MG2IWR029097@farm-0002.internal.tilera.com> (raw)

We returned without calling __munmap if not in the simulator.
Now we call a separate sim_dlclose() function to make the
control flow work correctly.
---
Siddhesh: Thanks for locating the bug!

David: this bug was (only) in 2.17.  It seems like it merits
a backport since it's a pretty straightforward fix.  What do you think?

 ports/ChangeLog.tile            |  6 ++++++
 ports/sysdeps/tile/dl-runtime.c | 12 +++++++++---
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/NEWS b/NEWS
index 4b2d5ca..a67e40b 100644
--- a/NEWS
+++ b/NEWS
@@ -21,7 +21,8 @@ Version 2.18
   15395, 15405, 15406, 15409, 15416, 15418, 15419, 15423, 15424, 15426,
   15429, 15431, 15432, 15441, 15442, 15448, 15465, 15480, 15485, 15488,
   15490, 15492, 15493, 15497, 15506, 15529, 15536, 15553, 15577, 15583,
-  15618, 15627, 15631, 15654, 15655, 15666, 15667, 15674, 15711, 15755.
+  15618, 15627, 15631, 15654, 15655, 15666, 15667, 15674, 15711, 15755,
+  15759.

 * CVE-2013-2207 Incorrectly granting access to another user's pseudo-terminal
   has been fixed by disabling the use of pt_chown (Bugzilla #15755).
diff --git a/ports/ChangeLog.tile b/ports/ChangeLog.tile
index dd3d4f4..41855f2 100644
--- a/ports/ChangeLog.tile
+++ b/ports/ChangeLog.tile
@@ -1,3 +1,9 @@
+2013-07-22  Chris Metcalf  <cmetcalf@tilera.com>
+
+	[BZ #15759]
+	* sysdeps/tile/dl-runtime.c (sim_dlclose): New function.
+	(_dl_unmap): Call sim_dlclose().
+
 2013-07-19  Chris Metcalf  <cmetcalf@tilera.com>
 
 	* sysdeps/unix/sysv/linux/tile/sys/ptrace.h
diff --git a/ports/sysdeps/tile/dl-runtime.c b/ports/sysdeps/tile/dl-runtime.c
index 84b5a5a..42f0ab3 100644
--- a/ports/sysdeps/tile/dl-runtime.c
+++ b/ports/sysdeps/tile/dl-runtime.c
@@ -127,8 +127,8 @@ _dl_after_load (struct link_map *l)
 }
 
 /* Support notifying the simulator about removed objects prior to munmap().  */
-void internal_function
-_dl_unmap (struct link_map *l)
+static void
+sim_dlclose (ElfW(Addr) map_start)
 {
   int shift;
 
@@ -144,9 +144,15 @@ _dl_unmap (struct link_map *l)
   DLPUTC ('0');
   DLPUTC ('x');
   for (shift = (int) sizeof (unsigned long) * 8 - 4; shift >= 0; shift -= 4)
-    DLPUTC ("0123456789abcdef"[(l->l_map_start >> shift) & 0xF]);
+    DLPUTC ("0123456789abcdef"[(map_start >> shift) & 0xF]);
   DLPUTC ('\0');
+
 #undef DLPUTC
+}
 
+void internal_function
+_dl_unmap (struct link_map *l)
+{
+  sim_dlclose (l->l_map_start);
   __munmap ((void *) l->l_map_start, l->l_map_end - l->l_map_start);
 }
-- 
1.8.3.1

             reply	other threads:[~2013-07-22 16:02 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-22 16:02 Chris Metcalf [this message]
2013-07-22 20:22 ` David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201307221602.r6MG2IWR029097@farm-0002.internal.tilera.com \
    --to=cmetcalf@tilera.com \
    --cc=davem@davemloft.net \
    --cc=libc-ports@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).