Re: [PATCH x86/mm 05/11] x86 ptrace getreg/putreg merge

Andrew Morton
2007-11-29T17:28:24Z

On Thu, 29 Nov 2007 03:59:54 -0800 (PST) Roland McGrath <roland@redhat.com> wrote:

> +/*
> + * Determines whether a value may be installed in a segment register.
> + */
> +#define invalid_selector(value) \
> + ((value) != 0 && ((value) & SEGMENT_RPL_MASK) != USER_RPL)

This didn't need to be implemented as a macro hence it shouldn't have been.

It references its arg more than once and is dangerous. Calling
invalid_selector(foo++) will increment foo by one or two, depending upon
foo's value.