Skip to content
  • Peter Maydell's avatar
    548f514c
    target/arm: Always set FAR to a known unknown value for debug exceptions · 548f514c
    Peter Maydell authored
    
    
    For debug exceptions due to breakpoints or the BKPT instruction which
    are taken to AArch32, the Fault Address Register is architecturally
    UNKNOWN.  We were using that as license to simply not set
    env->exception.vaddress, but this isn't correct, because it will
    expose to the guest whatever old value was in that field when
    arm_cpu_do_interrupt_aarch32() writes it to the guest IFSR.  That old
    value might be a FAR for a previous guest EL2 or secure exception, in
    which case we shouldn't show it to an EL1 or non-secure exception
    handler. It might also be a non-deterministic value, which is bad
    for record-and-replay.
    
    Clear env->exception.vaddress before taking breakpoint debug
    exceptions, to avoid this minor information leak.
    
    Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: default avatarPhilippe Mathieu-Daudé <f4bug@amsat.org>
    Message-id: 20180320134114.30418-5-peter.maydell@linaro.org
    548f514c
    target/arm: Always set FAR to a known unknown value for debug exceptions
    Peter Maydell authored
    
    
    For debug exceptions due to breakpoints or the BKPT instruction which
    are taken to AArch32, the Fault Address Register is architecturally
    UNKNOWN.  We were using that as license to simply not set
    env->exception.vaddress, but this isn't correct, because it will
    expose to the guest whatever old value was in that field when
    arm_cpu_do_interrupt_aarch32() writes it to the guest IFSR.  That old
    value might be a FAR for a previous guest EL2 or secure exception, in
    which case we shouldn't show it to an EL1 or non-secure exception
    handler. It might also be a non-deterministic value, which is bad
    for record-and-replay.
    
    Clear env->exception.vaddress before taking breakpoint debug
    exceptions, to avoid this minor information leak.
    
    Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: default avatarPhilippe Mathieu-Daudé <f4bug@amsat.org>
    Message-id: 20180320134114.30418-5-peter.maydell@linaro.org
Loading