Updating branch refs/heads/master
         to 59594bc3b42d4ba7acb675db54819707fa7c1bcb (commit)
       from 54edd5fd5a501db44084a29eccde2851a82302b9 (commit)

commit 59594bc3b42d4ba7acb675db54819707fa7c1bcb
Author: Nick Schermer <[email protected]>
Date:   Thu Aug 27 18:09:54 2009 +0200

    Protect strstr against null values, probably the crash in bug #3847.

 exo-desktop-item-edit/exo-die-desktop-model.c |   17 +++++++++++------
 1 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/exo-desktop-item-edit/exo-die-desktop-model.c 
b/exo-desktop-item-edit/exo-die-desktop-model.c
index 225db5a..2b50b57 100644
--- a/exo-desktop-item-edit/exo-die-desktop-model.c
+++ b/exo-desktop-item-edit/exo-die-desktop-model.c
@@ -702,11 +702,15 @@ exo_die_desktop_model_match_func (GtkEntryCompletion 
*completion,
   desktop_item = g_slist_nth_data (iter->user_data, 0);
 
   /* check if the name matches */
-  normalized = g_utf8_normalize (desktop_item->name, -1, G_NORMALIZE_ALL);
-  casefolded = g_utf8_casefold (normalized, -1);
-  matches = (strstr (casefolded, key) != NULL);
-  g_free (casefolded);
-  g_free (normalized);
+  if (G_LIKELY (desktop_item->name != NULL))
+    {
+      normalized = g_utf8_normalize (desktop_item->name, -1, G_NORMALIZE_ALL);
+      casefolded = g_utf8_casefold (normalized, -1);
+      if (G_LIKELY (casefolded != NULL && key != NULL))
+        matches = (strstr (casefolded, key) != NULL);
+      g_free (casefolded);
+      g_free (normalized);
+    }
 
   /* check if no hit yet */
   if (G_LIKELY (!matches && desktop_item->comment != NULL))
@@ -714,7 +718,8 @@ exo_die_desktop_model_match_func (GtkEntryCompletion 
*completion,
       /* also check the comment then */
       normalized = g_utf8_normalize (desktop_item->comment, -1, 
G_NORMALIZE_ALL);
       casefolded = g_utf8_casefold (normalized, -1);
-      matches = (strstr (casefolded, key) != NULL);
+      if (G_LIKELY (casefolded != NULL && key != NULL))
+        matches = (strstr (casefolded, key) != NULL);
       g_free (casefolded);
       g_free (normalized);
     }
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to