From d92bf83c152ff88c2d92bd852752d4c326004400 Mon Sep 17 00:00:00 2001 From: Sangwoo Moon Date: Wed, 27 Sep 2017 16:25:15 +0900 Subject: Adding pointer dereferencing after calling dlsym() dlsym() resolves the location of the loaded symbol, therefore dlsym() returns the type (fuse_module_factory_t *), not (fuse_module_factory_t). Added pinter dereferencing to correctly refer the factory function. --- lib/fuse.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/fuse.c b/lib/fuse.c index 7b0b979..3a72cb5 100644 --- a/lib/fuse.c +++ b/lib/fuse.c @@ -263,7 +263,7 @@ static int fuse_load_so_module(const char *module) } sprintf(tmp, "fuse_module_%s_factory", module); - factory = dlsym(so->handle, tmp); + factory = *((fuse_module_factory_t *) dlsym(so->handle, tmp)); if (factory == NULL) { fprintf(stderr, "fuse: symbol <%s> not found in module: %s\n", tmp, dlerror()); -- cgit v1.2.3