Merge commit 'v2.6.37-rc8' into perf/core
Merge reason: pick up latest -rc. Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
@@ -270,15 +270,16 @@ int build_id_cache__add_s(const char *sbuild_id, const char *debugdir,
|
||||
const char *name, bool is_kallsyms)
|
||||
{
|
||||
const size_t size = PATH_MAX;
|
||||
char *filename = malloc(size),
|
||||
char *realname = realpath(name, NULL),
|
||||
*filename = malloc(size),
|
||||
*linkname = malloc(size), *targetname;
|
||||
int len, err = -1;
|
||||
|
||||
if (filename == NULL || linkname == NULL)
|
||||
if (realname == NULL || filename == NULL || linkname == NULL)
|
||||
goto out_free;
|
||||
|
||||
len = snprintf(filename, size, "%s%s%s",
|
||||
debugdir, is_kallsyms ? "/" : "", name);
|
||||
debugdir, is_kallsyms ? "/" : "", realname);
|
||||
if (mkdir_p(filename, 0755))
|
||||
goto out_free;
|
||||
|
||||
@@ -288,7 +289,7 @@ int build_id_cache__add_s(const char *sbuild_id, const char *debugdir,
|
||||
if (is_kallsyms) {
|
||||
if (copyfile("/proc/kallsyms", filename))
|
||||
goto out_free;
|
||||
} else if (link(name, filename) && copyfile(name, filename))
|
||||
} else if (link(realname, filename) && copyfile(name, filename))
|
||||
goto out_free;
|
||||
}
|
||||
|
||||
@@ -305,6 +306,7 @@ int build_id_cache__add_s(const char *sbuild_id, const char *debugdir,
|
||||
if (symlink(targetname, linkname) == 0)
|
||||
err = 0;
|
||||
out_free:
|
||||
free(realname);
|
||||
free(filename);
|
||||
free(linkname);
|
||||
return err;
|
||||
|
||||
Reference in New Issue
Block a user