]> err.no Git - pkg-config/commitdiff
2005-04-13 Tollef Fog Heen <tfheen@err.no>
authorArch Librarian <arch@canonical.com>
Thu, 14 Jul 2005 13:07:07 +0000 (13:07 +0000)
committerArch Librarian <arch@canonical.com>
Thu, 14 Jul 2005 13:07:07 +0000 (13:07 +0000)
Author: tfheen
Date: 2005-04-13 15:47:18 GMT
2005-04-13  Tollef Fog Heen  <tfheen@err.no>

    * pkg.c (packages_get_l_libs, packages_get_L_libs): Duplicate
    singly linked list before putting it on list passed to
    string_list_strip_duplicates_from_back to avoid infinite loop when
    g_slist_copy tries to copy self-linked list.  This happens if the
    user specifies the same name on the command line twice.

ChangeLog
pkg.c

index 0a5cd6dc2e708e8c15c7eef69e2ef93abec5d4e2..bb6d64ea89dfb60dc5dd089616293f8e3e412dbb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2005-04-13  Tollef Fog Heen  <tfheen@err.no>
+
+       * pkg.c (packages_get_l_libs, packages_get_L_libs): Duplicate
+       singly linked list before putting it on list passed to
+       string_list_strip_duplicates_from_back to avoid infinite loop when
+       g_slist_copy tries to copy self-linked list.  This happens if the
+       user specifies the same name on the command line twice.
+
 2005-04-12  Tollef Fog Heen  <tfheen@err.no>
 
        * configure.in: 0.17.1
diff --git a/pkg.c b/pkg.c
index 7f430f6afdc1746eb5e3f406071b9efb3853957f..3f895f17366bd0c7584f310b431255b68f8f1d86 100644 (file)
--- a/pkg.c
+++ b/pkg.c
@@ -1023,7 +1023,7 @@ packages_get_l_libs (GSList     *pkgs, gboolean recurse)
     tmp = pkgs;
     while (tmp != NULL)
     {
-      dups_list = g_slist_concat (dups_list, get_l_libs(tmp->data));
+      dups_list = g_slist_concat (dups_list, g_slist_copy(get_l_libs(tmp->data)));
       tmp = tmp->next;
     }
 
@@ -1066,7 +1066,7 @@ packages_get_L_libs (GSList     *pkgs, gboolean recurse)
     tmp = pkgs;
     while (tmp != NULL)
     {
-      dups_list = g_slist_concat (dups_list, get_L_libs(tmp->data));
+      dups_list = g_slist_concat (dups_list, g_slist_copy(get_L_libs(tmp->data)));
       tmp = tmp->next;
     }