• Maciej W. Rozycki's avatar
    MIPS: Consistently handle buffer counter with PTRACE_SETREGSET · 80b3ffce
    Maciej W. Rozycki authored
    Update commit d614fd58 ("mips/ptrace: Preserve previous registers
    for short regset write") bug and consistently consume all data supplied
    to `fpr_set_msa' with the ptrace(2) PTRACE_SETREGSET request, such that
    a zero data buffer counter is returned where insufficient data has been
    given to fill a whole number of FP general registers.
    
    In reality this is not going to happen, as the caller is supposed to
    only supply data covering a whole number of registers and it is verified
    in `ptrace_regset' and again asserted in `fpr_set', however structuring
    code such that the presence of trailing partial FP general register data
    causes `fpr_set_msa' to return with a non-zero data buffer counter makes
    it appear that this trailing data will be used if there are subsequent
    writes made to FP registers, which is going to be the case with the FCSR
    once the missing write to that register has been fixed.
    
    Fixes: d614fd58 ("mips/ptrace: Preserve previous registers for short regset write")
    Signed-off-by: default avatarMaciej W. Rozycki <macro@mips.com>
    Cc: James Hogan <james.hogan@mips.com>
    Cc: Paul Burton <Paul.Burton@mips.com>
    Cc: Alex Smith <alex@alex-smith.me.uk>
    Cc: Dave Martin <Dave.Martin@arm.com>
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Cc: stable@vger.kernel.org # v4.11+
    Patchwork: https://patchwork.linux-mips.org/patch/17927/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    80b3ffce
ptrace.c 24.9 KB