Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 06 Jul 2026 01:06:18 +0000
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: b3ce127cc330 - stable/15 - rtld: unify the return path for map_object()
Message-ID:  <6a4aff8a.3ab07.5329b2b8@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch stable/15 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=b3ce127cc3309f6c3b12bbc876ab347502707f9e

commit b3ce127cc3309f6c3b12bbc876ab347502707f9e
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2026-06-29 20:08:31 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2026-07-06 01:05:50 +0000

    rtld: unify the return path for map_object()
    
    (cherry picked from commit 70fb92cd56bfe88a12d2a253542320bad7198321)
---
 libexec/rtld-elf/map_object.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/libexec/rtld-elf/map_object.c b/libexec/rtld-elf/map_object.c
index d769d01d3b24..0b4e847f407e 100644
--- a/libexec/rtld-elf/map_object.c
+++ b/libexec/rtld-elf/map_object.c
@@ -338,7 +338,8 @@ map_object(int fd, const char *path, const struct stat *sb, bool ismain)
 	obj->stack_flags = stack_flags;
 	if (note_start < note_end)
 		digest_notes(obj, note_start, note_end);
-	if (note_map != NULL)
+finish:
+	if (note_map != NULL && note_map != MAP_FAILED)
 		munmap(note_map, note_map_len);
 	munmap(hdr, page_size);
 	free(segs);
@@ -347,13 +348,10 @@ map_object(int fd, const char *path, const struct stat *sb, bool ismain)
 error1:
 	munmap(mapbase, mapsize);
 error:
-	if (note_map != NULL && note_map != MAP_FAILED)
-		munmap(note_map, note_map_len);
 	if (!phdr_in_zero_page(hdr))
 		munmap(phdr, hdr->e_phnum * sizeof(phdr[0]));
-	munmap(hdr, page_size);
-	free(segs);
-	return (NULL);
+	obj = NULL;
+	goto finish;
 }
 
 bool


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a4aff8a.3ab07.5329b2b8>