On 06/08/2015 09:46 AM, Derek Foreman wrote: > We were loading modules out of the system dirs unconditionally, so > tests that loaded modules would use the system ones, or fail if > they weren't installed. > > Reviewed-By: Pekka Paalanen <[email protected]> > Signed-off-by: Derek Foreman <[email protected]> > --- > src/compositor.c | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) > > diff --git a/src/compositor.c b/src/compositor.c > index 8f02b4d..3196e5a 100644 > --- a/src/compositor.c > +++ b/src/compositor.c > @@ -4906,16 +4906,21 @@ on_caught_signal(int s, siginfo_t *siginfo, void > *context) > WL_EXPORT void * > weston_load_module(const char *name, const char *entrypoint) > { > + const char *builddir = getenv("WESTON_BUILD_DIR"); > char path[PATH_MAX]; > void *module, *init; > > if (name == NULL) > return NULL; > > - if (name[0] != '/') > - snprintf(path, sizeof path, "%s/%s", MODULEDIR, name); > - else > + if (name[0] != '/') { > + if (builddir) > + snprintf(path, sizeof path, "%s/.libs/%s", builddir, > name); > + else > + snprintf(path, sizeof path, "%s/%s", MODULEDIR, name); > + } else { > snprintf(path, sizeof path, "%s", name); > + } > > module = dlopen(path, RTLD_NOW | RTLD_NOLOAD); > if (module) {
After the calls to snprintf, for safety the last byte of the 'path' buffer should be explicitly zeroed as technically null-termination is not guaranteed. -- Jon A. Cruz - Senior Open Source Developer Samsung Open Source Group [email protected] _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
