From: Thomas Jarosch Date: Fri, 14 Oct 2011 17:00:47 +0000 (+0200) Subject: perf buildid: Fix possible unterminated readlink() result buffer X-Git-Url: http://git.mmlx.us/?a=commitdiff_plain;h=6c3c5b26d08569ed80e10d3e02d3c997ed1e6e7c;p=linux-edison.git perf buildid: Fix possible unterminated readlink() result buffer The readlink function doesn't guarantee that a '\0' will be put at the end of the provided buffer if there is no space left. No need to do "buf[len] = '\0';" since the buffer is allocated with zalloc(). Link: http://lkml.kernel.org/r/4E986ABF.9040706@intra2net.com Signed-off-by: Thomas Jarosch Signed-off-by: Arnaldo Carvalho de Melo --- diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index f2ceb0f7d66..2143a32638c 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -1289,7 +1289,7 @@ int build_id_cache__remove_s(const char *sbuild_id, const char *debugdir) if (access(linkname, F_OK)) goto out_free; - if (readlink(linkname, filename, size) < 0) + if (readlink(linkname, filename, size - 1) < 0) goto out_free; if (unlink(linkname))