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 <pekka.paala...@collabora.co.uk>
>> Signed-off-by: Derek Foreman <der...@osg.samsung.com>
>> ---
>>  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
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to