On Mon, Sep 10, 2018 at 04:04:56PM -0700, Laura Abbott wrote: > kgdbts current fails when compiled with restrict: > > drivers/misc/kgdbts.c: In function ‘configure_kgdbts’: > drivers/misc/kgdbts.c:1070:2: error: ‘strcpy’ source argument is the same as > destination [-Werror=restrict] > strcpy(config, opt); > ^~~~~~~~~~~~~~~~~~~ > > As the error says, config is being used in both the source and destination. > Refactor the code to only do the copy when needed. > > Signed-off-by: Laura Abbott <labb...@redhat.com> > --- > drivers/misc/kgdbts.c | 21 +++++++++++---------- > 1 file changed, 11 insertions(+), 10 deletions(-) > > diff --git a/drivers/misc/kgdbts.c b/drivers/misc/kgdbts.c > index 6193270e7b3d..4447ad68ea39 100644 > --- a/drivers/misc/kgdbts.c > +++ b/drivers/misc/kgdbts.c > @@ -1061,20 +1061,23 @@ static void kgdbts_run_tests(void) > configured = 0; > } > > -static int kgdbts_option_setup(char *opt) > +static void kgdbts_set_verbose(void) > { > - if (strlen(opt) >= MAX_CONFIG_LEN) { > - printk(KERN_ERR "kgdbts: config string too long\n"); > - return -ENOSPC; > - } > - strcpy(config, opt); > - > verbose = 0; > if (strstr(config, "V1")) > verbose = 1; > if (strstr(config, "V2")) > verbose = 2; > +} > > +static int kgdbts_option_setup(char *opt) > +{ > + if (strlen(opt) >= MAX_CONFIG_LEN) { > + printk(KERN_ERR "kgdbts: config string too long\n"); > + return -ENOSPC; > + } > + strcpy(config, opt); > + kgdbts_set_verbose();
I know this is honouring the existing code paths but I think kgdbts_set_verbose() is redundant here. Directly setting up verbose from kgdbts_run_tests() where the rest of the config string is parsed should be sufficient. Having said that I don't want to bounce perfectly correct fixes just because they could have done more. Do you want to send a v2 or prefer me to put further clean up on my TODO list? Daniel. > return 0; > } > > @@ -1086,9 +1089,7 @@ static int configure_kgdbts(void) > > if (!strlen(config) || isspace(config[0])) > goto noconfig; > - err = kgdbts_option_setup(config); > - if (err) > - goto noconfig; > + kgdbts_set_verbose(); > > final_ack = 0; > run_plant_and_detach_test(1); > -- > 2.17.1 > _______________________________________________ Kgdb-bugreport mailing list Kgdb-bugreport@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport