|
@@ -270,11 +270,15 @@ 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 *realname = realpath(name, NULL),
|
|
|
- *filename = malloc(size),
|
|
|
+ char *realname, *filename = malloc(size),
|
|
|
*linkname = malloc(size), *targetname;
|
|
|
int len, err = -1;
|
|
|
|
|
|
+ if (is_kallsyms)
|
|
|
+ realname = (char *)name;
|
|
|
+ else
|
|
|
+ realname = realpath(name, NULL);
|
|
|
+
|
|
|
if (realname == NULL || filename == NULL || linkname == NULL)
|
|
|
goto out_free;
|
|
|
|
|
@@ -306,7 +310,8 @@ int build_id_cache__add_s(const char *sbuild_id, const char *debugdir,
|
|
|
if (symlink(targetname, linkname) == 0)
|
|
|
err = 0;
|
|
|
out_free:
|
|
|
- free(realname);
|
|
|
+ if (!is_kallsyms)
|
|
|
+ free(realname);
|
|
|
free(filename);
|
|
|
free(linkname);
|
|
|
return err;
|