(2013/12/26 23:22), Arnaldo Carvalho de Melo wrote: > Em Thu, Dec 26, 2013 at 09:14:46AM -0500, David Ahern escreveu: >> On 12/26/13, 12:41 AM, Masami Hiramatsu wrote: >>> @@ -180,7 +181,20 @@ static int opt_set_target(const struct option *opt, >>> const char *str, >>> else >>> return ret; >>> >>> - params.target = str; >>> + /* Expand given path to absolute path, except for modulename */ >>> + if (params.uprobes || strchr(str, '/')) { >>> + tmp = realpath(str, NULL); >>> + if (!tmp) { >>> + pr_warning("Failed to find the path of %s.\n", >>> + str); >> >> That error message will be misleading if it is generated. How about: >> Failed to get the absolute path of %s: %d\n", str, errno. > > Changed it to: > > pr_warning("Failed to get the absolute path of %s: %m\n", str);
Thanks, that looks good to me. >>> + return ret; >>> + } >>> + } else { >>> + tmp = strdup(str); >>> + if (!tmp) >>> + return -ENOMEM; >>> + } >>> + params.target = tmp; >> >> When is params.target freed? Nowhere, since there is no terminal code for user command interface. Those memories are released when the program terminated. I think it is just a waste of the time to free the memory pieces which are not used(and allocated) repeatedly. Or, is there any chance to call this part directly from other command? Thank you, -- Masami HIRAMATSU IT Management Research Dept. Linux Technology Center Hitachi, Ltd., Yokohama Research Laboratory E-mail: masami.hiramatsu...@hitachi.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/