[PATCH] ppc/xmon: use isspace/isxdigit/isalnum from linux/ctype.h
Benjamin Herrenschmidt
benh at kernel.crashing.org
Wed Jul 16 09:46:46 EST 2014
On Tue, 2014-07-15 at 13:43 +0200, Vincent Bernat wrote:
> isxdigit() macro definition is the same.
>
> isalnum() from linux/ctype.h will accept additional latin non-ASCII
> characters. This is harmless since this macro is used in scanhex() which
> parses user input.
>
> isspace() from linux/ctype.h will accept vertical tab and form feed but
> not NULL. The use of this macro is modified to accept NULL as
> well. Additional characters are harmless since this macro is also only
> used in scanhex().
I don't think we care about \0 ... Paul, care to chime in ? After all,
you wrote that stuff a century or two ago... :)
Cheers,
Ben.
> Signed-off-by: Vincent Bernat <vincent at bernat.im>
> ---
> arch/powerpc/xmon/xmon.c | 14 ++------------
> 1 file changed, 2 insertions(+), 12 deletions(-)
>
> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
> index d199bfa2f1fa..55d9b48774b7 100644
> --- a/arch/powerpc/xmon/xmon.c
> +++ b/arch/powerpc/xmon/xmon.c
> @@ -24,6 +24,7 @@
> #include <linux/interrupt.h>
> #include <linux/irq.h>
> #include <linux/bug.h>
> +#include <linux/ctype.h>
>
> #include <asm/ptrace.h>
> #include <asm/string.h>
> @@ -177,14 +178,6 @@ extern void xmon_leave(void);
> #define GETWORD(v) (((v)[0] << 24) + ((v)[1] << 16) + ((v)[2] << 8) + (v)[3])
> #endif
>
> -#define isxdigit(c) (('0' <= (c) && (c) <= '9') \
> - || ('a' <= (c) && (c) <= 'f') \
> - || ('A' <= (c) && (c) <= 'F'))
> -#define isalnum(c) (('0' <= (c) && (c) <= '9') \
> - || ('a' <= (c) && (c) <= 'z') \
> - || ('A' <= (c) && (c) <= 'Z'))
> -#define isspace(c) (c == ' ' || c == '\t' || c == 10 || c == 13 || c == 0)
> -
> static char *help_string = "\
> Commands:\n\
> b show breakpoints\n\
> @@ -2121,9 +2114,6 @@ static void dump_pacas(void)
> }
> #endif
>
> -#define isxdigit(c) (('0' <= (c) && (c) <= '9') \
> - || ('a' <= (c) && (c) <= 'f') \
> - || ('A' <= (c) && (c) <= 'F'))
> static void
> dump(void)
> {
> @@ -2526,7 +2516,7 @@ scanhex(unsigned long *vp)
> int i;
> for (i=0; i<63; i++) {
> c = inchar();
> - if (isspace(c)) {
> + if (isspace(c) || c == '\0') {
> termch = c;
> break;
> }
More information about the Linuxppc-dev
mailing list