On 09/06/15 06:24 PM, Jon A. Cruz wrote: > 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.
You're thinking of strncpy(). _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
