From 79d57fcb291464d1b1272638ad594f9568f84b64 Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Sat, 10 Dec 2011 10:27:27 -0200 Subject: [PATCH] kmod_load_resources: use proper full path to binary files to be mmaped. --- libkmod/libkmod.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/libkmod/libkmod.c b/libkmod/libkmod.c index 8e4209d..b56a309 100644 --- a/libkmod/libkmod.c +++ b/libkmod/libkmod.c @@ -560,6 +560,7 @@ fail: KMOD_EXPORT int kmod_load_resources(struct kmod_ctx *ctx) { + char path[PATH_MAX]; size_t i; if (ctx == NULL) @@ -568,6 +569,19 @@ KMOD_EXPORT int kmod_load_resources(struct kmod_ctx *ctx) for (i = 0; i < ARRAY_SIZE(index_files); i++) { if (ctx->indexes[i] == NULL) { const char *fn = index_files[i]; + size_t fnlen = strlen(fn); + const char *prefix = ""; + const char *suffix = ""; + + if (fn[0] != '/') + prefix = ctx->dirname; + + if (fnlen < 4 || !streq(fn + fnlen - 4, ".bin")) + suffix = ".bin"; + + snprintf(path, sizeof(path), "%s/%s%s", + prefix, fn, suffix); + fn = path; ctx->indexes[i] = index_mm_open(ctx, fn, true); if (ctx->indexes[i] == NULL)