• M
    Tighten up BN_with_flags usage and avoid a reachable assert · fd7d2520
    Matt Caswell 提交于
    The function rsa_ossl_mod_exp uses the function BN_with_flags to create a
    temporary copy (local_r1) of a BIGNUM (r1) with modified flags. This
    temporary copy shares some state with the original r1. If the state of r1
    gets updated then local_r1's state will be stale. This was occurring in the
    function so that when local_r1 was freed a call to bn_check_top was made
    which failed an assert due to the stale state. To resolve this we must free
    local_r1 immediately after we have finished using it and not wait until the
    end of the function.
    
    This problem prompted a review of all BN_with_flag usage within the
    codebase. All other usage appears to be correct, although often not
    obviously so. This commit refactors things to make it much clearer for
    these other uses.
    Reviewed-by: NEmilia Käsper <emilia@openssl.org>
    fd7d2520
dh_key.c 8.5 KB