From 5bb351d4506d50b5b5bcb1f3698f422683b1b563 Mon Sep 17 00:00:00 2001 From: Scoopta Date: Mon, 4 Nov 2019 13:25:44 -0800 Subject: [PATCH] Internal plugin initalizers must now be prefixed with wofi_. This prevents using map, wl_list, wofi, and other mode strings to segfault wofi --- modes/dmenu.c | 6 +++--- modes/drun.c | 4 ++-- modes/run.c | 4 ++-- src/wofi.c | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modes/dmenu.c b/modes/dmenu.c index 91aceaa..eb41add 100644 --- a/modes/dmenu.c +++ b/modes/dmenu.c @@ -17,7 +17,7 @@ #include -void dmenu_init() { +void wofi_dmenu_init() { struct map* cached = map_init(); struct wl_list* cache = wofi_read_cache("dmenu"); @@ -48,11 +48,11 @@ void dmenu_init() { map_free(cached); } -void dmenu_exec(const gchar* cmd) { +void wofi_dmenu_exec(const gchar* cmd) { printf("%s\n", cmd); exit(0); } -bool dmenu_exec_search() { +bool wofi_dmenu_exec_search() { return true; } diff --git a/modes/drun.c b/modes/drun.c index d5c0bc4..7a74691 100644 --- a/modes/drun.c +++ b/modes/drun.c @@ -99,7 +99,7 @@ static void insert_dir(char* app_dir, struct map* cached, struct map* entries) { closedir(dir); } -void drun_init() { +void wofi_drun_init() { struct map* cached = map_init(); struct map* entries = map_init(); struct wl_list* cache = wofi_read_cache("drun"); @@ -160,7 +160,7 @@ static void launch_done(GObject* obj, GAsyncResult* result, gpointer data) { } } -void drun_exec(const gchar* cmd) { +void wofi_drun_exec(const gchar* cmd) { GDesktopAppInfo* info = g_desktop_app_info_new_from_filename(cmd); if(G_IS_DESKTOP_APP_INFO(info)) { g_app_info_launch_uris_async(G_APP_INFO(info), NULL, NULL, NULL, launch_done, (gchar*) cmd); diff --git a/modes/run.c b/modes/run.c index b0acab3..e2383ed 100644 --- a/modes/run.c +++ b/modes/run.c @@ -17,7 +17,7 @@ #include -void run_init() { +void wofi_run_init() { struct map* cached = map_init(); struct wl_list* cache = wofi_read_cache("run"); @@ -66,7 +66,7 @@ void run_init() { map_free(cached); } -void run_exec(const gchar* cmd) { +void wofi_run_exec(const gchar* cmd) { if(wofi_run_in_term()) { wofi_term_run(cmd); } diff --git a/src/wofi.c b/src/wofi.c index 5fd2353..79c64f7 100644 --- a/src/wofi.c +++ b/src/wofi.c @@ -394,7 +394,7 @@ static gboolean key_press(GtkWidget* widget, GdkEvent* event, gpointer data) { } static void* get_plugin_proc(const char* prefix, const char* suffix) { - char* proc_name = utils_concat(2, prefix, suffix); + char* proc_name = utils_concat(3, "wofi_", prefix, suffix); void* proc = dlsym(RTLD_DEFAULT, proc_name); free(proc_name); return proc;