X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-trace.c;h=e7ae9fc0bf8ec84eded8ac8e2fef984edb99bfa9;hb=65141ebcb134f670a87233a88b8d51e4a671272e;hp=dd6e863cc0e98d46da820b2407e539eac33280ca;hpb=1e1d181ac5226b2e1b26192d36e13b5a44148139;p=src%2Fapp-framework-binder.git diff --git a/src/afb-trace.c b/src/afb-trace.c index dd6e863c..e7ae9fc0 100644 --- a/src/afb-trace.c +++ b/src/afb-trace.c @@ -687,10 +687,12 @@ static void hook_api_rootdir_get_fd(void *closure, const struct afb_hookid *hook { char path[PATH_MAX], proc[100]; const char *key, *val; + ssize_t s; if (result >= 0) { snprintf(proc, sizeof proc, "/proc/self/fd/%d", result); - readlink(proc, path, sizeof path); + s = readlink(proc, path, sizeof path); + path[s < 0 ? 0 : s >= sizeof path ? sizeof path - 1 : s] = 0; key = "path"; val = path; } else { @@ -705,10 +707,12 @@ static void hook_api_rootdir_open_locale(void *closure, const struct afb_hookid { char path[PATH_MAX], proc[100]; const char *key, *val; + ssize_t s; if (result >= 0) { snprintf(proc, sizeof proc, "/proc/self/fd/%d", result); - readlink(proc, path, sizeof path); + s = readlink(proc, path, sizeof path); + path[s < 0 ? 0 : s >= sizeof path ? sizeof path - 1 : s] = 0; key = "path"; val = path; } else {