drun should no longer crash when encountering invalid cache entries
This commit is contained in:
parent
f51a335465
commit
f93ba6a41c
11
modes/drun.c
11
modes/drun.c
@ -180,6 +180,9 @@ static struct widget_builder* populate_actions(char* file, size_t* text_count) {
|
|||||||
|
|
||||||
static char* get_id(char* path) {
|
static char* get_id(char* path) {
|
||||||
char* applications = strstr(path, "applications/");
|
char* applications = strstr(path, "applications/");
|
||||||
|
if(applications == NULL) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
char* name = strchr(applications, '/') + 1;
|
char* name = strchr(applications, '/') + 1;
|
||||||
char* id = strdup(name);
|
char* id = strdup(name);
|
||||||
|
|
||||||
@ -192,6 +195,10 @@ static char* get_id(char* path) {
|
|||||||
|
|
||||||
static struct widget* create_widget(char* full_path) {
|
static struct widget* create_widget(char* full_path) {
|
||||||
char* id = get_id(full_path);
|
char* id = get_id(full_path);
|
||||||
|
if(id == NULL) {
|
||||||
|
free(full_path);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if(map_contains(entries, id)) {
|
if(map_contains(entries, id)) {
|
||||||
free(id);
|
free(id);
|
||||||
@ -231,6 +238,10 @@ static void insert_dir(char* app_dir) {
|
|||||||
}
|
}
|
||||||
char* full_path = utils_concat(3, app_dir, "/", entry->d_name);
|
char* full_path = utils_concat(3, app_dir, "/", entry->d_name);
|
||||||
char* id = get_id(full_path);
|
char* id = get_id(full_path);
|
||||||
|
if(id == NULL) {
|
||||||
|
free(full_path);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
struct stat info;
|
struct stat info;
|
||||||
stat(full_path, &info);
|
stat(full_path, &info);
|
||||||
|
Loading…
Reference in New Issue
Block a user