Loading...
src/ImageLoaderMegaDylib.cpp dyld-421.2 dyld-433.5
--- dyld/dyld-421.2/src/ImageLoaderMegaDylib.cpp
+++ dyld/dyld-433.5/src/ImageLoaderMegaDylib.cpp
@@ -283,6 +283,18 @@
 			}
 		}
 	}
+
+	// handle symlinks embedded in load commands
+	char resolvedPath[PATH_MAX];
+	realpath(path, resolvedPath);
+	int realpathErrno = errno;
+	// If realpath() resolves to a path which does not exist on disk, errno is set to ENOENT
+	if ( (realpathErrno == ENOENT) || (realpathErrno == 0) ) {
+		if ( strcmp(resolvedPath, path) != 0 )
+			return findImageIndex(context, resolvedPath);
+	}
+
+
 	dyld::throwf("no cache image with name (%s)", path);
 }