From 0e7d1f13e00599c00b094f94b93587ab00888900 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Thu, 16 Jan 2020 21:39:20 +0100 Subject: [PATCH] AppInfoList: make sure to dereference symlink before comparing May fix #15633 (untested) Change-Id: Id0c8f0617553d988e767bae46fe0ac8fd3e698e9 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2118 Reviewed-by: Adrien Destugues --- src/servers/registrar/AppInfoList.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/servers/registrar/AppInfoList.cpp b/src/servers/registrar/AppInfoList.cpp index ae07b285de..f753ff06d0 100644 --- a/src/servers/registrar/AppInfoList.cpp +++ b/src/servers/registrar/AppInfoList.cpp @@ -291,8 +291,14 @@ int32 AppInfoList::IndexOf(const entry_ref *ref) const { if (ref) { + // Dereference symlink if needed + BEntry entry(ref, true); + entry_ref realRef; + if (entry.GetRef(&realRef) != B_OK) + realRef = *ref; + for (int32 i = 0; RosterAppInfo *info = InfoAt(i); i++) { - if (info->ref == *ref) + if (info->ref == realRef) return i; } }