Message ID | 20170626140601.7106-2-msuchanek@suse.de (mailing list archive) |
---|---|
State | Accepted |
Commit | dcdc46794b7bb76733d9792cca2f45871d66881f |
Headers | show |
Thanks for the patch, Michal. On Monday 26 June 2017 07:36 PM, Michal Suchanek wrote: > Currently sysfs store handlers in fadump use if buf[0] == 'char'. > > This means input "100foo" is interpreted as '1' and "01" as '0'. > > Change to kstrtoint so leading zeroes and the like is handled in > expected way. > > Signed-off-by: Michal Suchanek <msuchanek@suse.de> Acked-by: Hari Bathini <hbathini@linux.vnet.ibm.com> > --- > arch/powerpc/kernel/fadump.c | 17 +++++++++++++---- > 1 file changed, 13 insertions(+), 4 deletions(-) > > diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c > index 5a7355381dac..241eff0b5f76 100644 > --- a/arch/powerpc/kernel/fadump.c > +++ b/arch/powerpc/kernel/fadump.c > @@ -1161,10 +1161,15 @@ static ssize_t fadump_release_memory_store(struct kobject *kobj, > struct kobj_attribute *attr, > const char *buf, size_t count) > { > + int input = -1; > + > if (!fw_dump.dump_active) > return -EPERM; > > - if (buf[0] == '1') { > + if (kstrtoint(buf, 0, &input)) > + return -EINVAL; > + > + if (input == 1) { > /* > * Take away the '/proc/vmcore'. We are releasing the dump > * memory, hence it will not be valid anymore. > @@ -1198,21 +1203,25 @@ static ssize_t fadump_register_store(struct kobject *kobj, > const char *buf, size_t count) > { > int ret = 0; > + int input = -1; > > if (!fw_dump.fadump_enabled || fdm_active) > return -EPERM; > > + if (kstrtoint(buf, 0, &input)) > + return -EINVAL; > + > mutex_lock(&fadump_mutex); > > - switch (buf[0]) { > - case '0': > + switch (input) { > + case 0: > if (fw_dump.dump_registered == 0) { > goto unlock_out; > } > /* Un-register Firmware-assisted dump */ > fadump_unregister_dump(&fdm); > break; > - case '1': > + case 1: > if (fw_dump.dump_registered == 1) { > goto unlock_out; > } <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body text="#000000" bgcolor="#FFFFFF"> <p>Thanks for the patch, Michal.<br> </p> <br> <div class="moz-cite-prefix">On Monday 26 June 2017 07:36 PM, Michal Suchanek wrote:<br> </div> <blockquote type="cite" cite="mid:20170626140601.7106-2-msuchanek@suse.de"> <pre wrap="">Currently sysfs store handlers in fadump use if buf[0] == 'char'. This means input "100foo" is interpreted as '1' and "01" as '0'. Change to kstrtoint so leading zeroes and the like is handled in expected way. Signed-off-by: Michal Suchanek <a class="moz-txt-link-rfc2396E" href="mailto:msuchanek@suse.de"><msuchanek@suse.de></a></pre> </blockquote> <br> Acked-by: Hari Bathini <a class="moz-txt-link-rfc2396E" href="mailto:hbathini@linux.vnet.ibm.com"><hbathini@linux.vnet.ibm.com></a><br> <br> <blockquote type="cite" cite="mid:20170626140601.7106-2-msuchanek@suse.de"> <pre wrap=""> --- arch/powerpc/kernel/fadump.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c index 5a7355381dac..241eff0b5f76 100644 --- a/arch/powerpc/kernel/fadump.c +++ b/arch/powerpc/kernel/fadump.c @@ -1161,10 +1161,15 @@ static ssize_t fadump_release_memory_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count) { + int input = -1; + if (!fw_dump.dump_active) return -EPERM; - if (buf[0] == '1') { + if (kstrtoint(buf, 0, &input)) + return -EINVAL; + + if (input == 1) { /* * Take away the '/proc/vmcore'. We are releasing the dump * memory, hence it will not be valid anymore. @@ -1198,21 +1203,25 @@ static ssize_t fadump_register_store(struct kobject *kobj, const char *buf, size_t count) { int ret = 0; + int input = -1; if (!fw_dump.fadump_enabled || fdm_active) return -EPERM; + if (kstrtoint(buf, 0, &input)) + return -EINVAL; + mutex_lock(&fadump_mutex); - switch (buf[0]) { - case '0': + switch (input) { + case 0: if (fw_dump.dump_registered == 0) { goto unlock_out; } /* Un-register Firmware-assisted dump */ fadump_unregister_dump(&fdm); break; - case '1': + case 1: if (fw_dump.dump_registered == 1) { goto unlock_out; } </pre> </blockquote> <br> <br> </body> </html>
On Mon, 2017-06-26 at 14:06:01 UTC, Michal Suchanek wrote: > Currently sysfs store handlers in fadump use if buf[0] == 'char'. > > This means input "100foo" is interpreted as '1' and "01" as '0'. > > Change to kstrtoint so leading zeroes and the like is handled in > expected way. > > Signed-off-by: Michal Suchanek <msuchanek@suse.de> > Acked-by: Hari Bathini <hbathini@linux.vnet.ibm.com> > Signed-off-by: Michal Suchanek <a class="moz-txt-link-rfc2396E" href="mailto:msuchanek@suse.de"><msuchanek@suse.de></a></pre> Applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/dcdc46794b7bb76733d9792cca2f45 cheers
diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c index 5a7355381dac..241eff0b5f76 100644 --- a/arch/powerpc/kernel/fadump.c +++ b/arch/powerpc/kernel/fadump.c @@ -1161,10 +1161,15 @@ static ssize_t fadump_release_memory_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count) { + int input = -1; + if (!fw_dump.dump_active) return -EPERM; - if (buf[0] == '1') { + if (kstrtoint(buf, 0, &input)) + return -EINVAL; + + if (input == 1) { /* * Take away the '/proc/vmcore'. We are releasing the dump * memory, hence it will not be valid anymore. @@ -1198,21 +1203,25 @@ static ssize_t fadump_register_store(struct kobject *kobj, const char *buf, size_t count) { int ret = 0; + int input = -1; if (!fw_dump.fadump_enabled || fdm_active) return -EPERM; + if (kstrtoint(buf, 0, &input)) + return -EINVAL; + mutex_lock(&fadump_mutex); - switch (buf[0]) { - case '0': + switch (input) { + case 0: if (fw_dump.dump_registered == 0) { goto unlock_out; } /* Un-register Firmware-assisted dump */ fadump_unregister_dump(&fdm); break; - case '1': + case 1: if (fw_dump.dump_registered == 1) { goto unlock_out; }
Currently sysfs store handlers in fadump use if buf[0] == 'char'. This means input "100foo" is interpreted as '1' and "01" as '0'. Change to kstrtoint so leading zeroes and the like is handled in expected way. Signed-off-by: Michal Suchanek <msuchanek@suse.de> --- arch/powerpc/kernel/fadump.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-)