Fix infinite loop when walking up the directory hierarchy (#1183)
authorVolker Krause <vkrause@kde.org>
Thu, 27 Sep 2018 14:33:49 +0000 (16:33 +0200)
committerEbrahim Byagowi <ebrahim@gnu.org>
Thu, 27 Sep 2018 14:33:49 +0000 (18:03 +0330)
A single find_package(harfbuzz) line in user code resulted in this loop
getting stuck when _harfbuzz_libdir_iter became "/".

src/harfbuzz-config.cmake.in

index 87b1572..304410d 100644 (file)
@@ -12,7 +12,11 @@ set(_harfbuzz_libdir "@libdir@")
 string(REPLACE "${_harfbuzz_remove_string}/" "" _harfbuzz_libdir "${_harfbuzz_libdir}")
 set(_harfbuzz_libdir_iter "${_harfbuzz_libdir}")
 while (_harfbuzz_libdir_iter)
+  set(_harfbuzz_libdir_prev_iter "${_harfbuzz_libdir_iter}")
   get_filename_component(_harfbuzz_libdir_iter "${_harfbuzz_libdir_iter}" DIRECTORY)
+  if (_harfbuzz_libdir_prev_iter STREQUAL _harfbuzz_libdir_iter)
+    break()
+  endif ()
   get_filename_component(_harfbuzz_prefix "${_harfbuzz_prefix}" DIRECTORY)
 endwhile ()
 unset(_harfbuzz_libdir_iter)