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

Reply via email to