git: e9cbbf04d6fe - main - nlist: Decrement nent on match

From: Dag-Erling Smørgrav <des_at_FreeBSD.org>
Date: Thu, 21 May 2026 09:37:50 UTC
The branch main has been updated by des:

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

commit e9cbbf04d6fe24b3a207cf085122def72145742e
Author:     Dag-Erling Smørgrav <des@FreeBSD.org>
AuthorDate: 2026-05-21 09:26:47 +0000
Commit:     Dag-Erling Smørgrav <des@FreeBSD.org>
CommitDate: 2026-05-21 09:37:33 +0000

    nlist: Decrement nent on match
    
    PR:             295336
    MFC after:      1 week
    Fixes:          4617a6cb82a6 ("nlist: Handle multiple symbol tables")
---
 lib/libc/gen/nlist.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/libc/gen/nlist.c b/lib/libc/gen/nlist.c
index 06034dc8ee1a..2a9d22852b9a 100644
--- a/lib/libc/gen/nlist.c
+++ b/lib/libc/gen/nlist.c
@@ -259,8 +259,10 @@ elf_scan_symtab(Elf_Shdr *shdr, int shnum, int fd, off_t symoff, size_t symsize,
 			slen = strnlen(name, strsize - s->st_name);
 			for (p = list; nent > 0 && !ISLAST(p); p++) {
 				if (strncmp(name, p->n_un.n_name, slen) == 0 &&
-				    p->n_un.n_name[slen] == '\0')
+				    p->n_un.n_name[slen] == '\0') {
 					elf_sym_to_nlist(p, s, shdr, shnum);
+					--nent;
+				}
 			}
 		}
 	}