memory could be leaked if the S option is passed several time. Also replace the xzalloc + strcpy call with a call to xstrdup.
Signed-off-by: Jules Maselbas <[email protected]> --- commands/of_display_timings.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/commands/of_display_timings.c b/commands/of_display_timings.c index 232074fce7..5998d42ffe 100644 --- a/commands/of_display_timings.c +++ b/commands/of_display_timings.c @@ -42,7 +42,7 @@ static int do_of_display_timings(int argc, char *argv[]) struct device_node *root = NULL; struct device_node *display = NULL; struct device_node *timings = NULL; - char *timingpath = NULL; + const char *timingpath = NULL; char *dtbfile = NULL; while ((opt = getopt(argc, argv, "sS:lf:")) > 0) { @@ -57,8 +57,7 @@ static int do_of_display_timings(int argc, char *argv[]) selected = 1; break; case 'S': - timingpath = xzalloc(strlen(optarg) + 1); - strcpy(timingpath, optarg); + timingpath = optarg; break; default: return COMMAND_ERROR_USAGE; @@ -108,7 +107,7 @@ static int do_of_display_timings(int argc, char *argv[]) } if (timingpath) - of_register_fixup(of_display_timing, timingpath); + of_register_fixup(of_display_timing, xstrdup(timingpath)); return 0; } -- 2.48.1
