]> Dogcows Code - chaz/tint2/blobdiff - src/launcher/launcher.c
launcher: Prevent calling strlen on NULL
[chaz/tint2] / src / launcher / launcher.c
index 158e06c1ddac0a590253ed1b0b8709482b9c778a..c90c545a023b73290827dfbcd003bc397293f832 100644 (file)
@@ -372,7 +372,7 @@ void expand_exec(DesktopEntry *entry, const char *path)
        // %c -> Name
        // %k -> path
        if (entry->exec) {
-               char *exec2 = malloc(strlen(entry->exec) + strlen(entry->name) + strlen(entry->icon) + 100);
+               char *exec2 = malloc(strlen(entry->exec) + (entry->name ? strlen(entry->name) : 1) + (entry->icon ? strlen(entry->icon) : 1) + 100);
                char *p, *q;
                // p will never point to an escaped char
                for (p = entry->exec, q = exec2; *p; p++, q++) {
@@ -711,6 +711,7 @@ void launcher_load_themes(Launcher *launcher)
                        launcher->icon_themes = g_slist_append(launcher->icon_themes, theme);
 
                        GSList* item = theme->list_inherits;
+                       int pos = 0;
                        while (item != NULL)
                        {
                                char *parent = item->data;
@@ -724,7 +725,8 @@ void launcher_load_themes(Launcher *launcher)
                                        queued_item = g_slist_next(queued_item);
                                }
                                if (!duplicate) {
-                                       queue = g_slist_append(queue, strdup(parent));
+                                       queue = g_slist_insert(queue, strdup(parent), pos);
+                                       pos++;
                                        queued = g_slist_append(queued, strdup(parent));
                                }
                                item = g_slist_next(item);
This page took 0.024709 seconds and 4 git commands to generate.