e5a9e46 get_directive: don't error out on substring mismatch

2 files Authored by rcritten 4 months ago, Committed by frenaud 4 months ago,
    get_directive: don't error out on substring mismatch
    
    This function is designed to retrieve a value from an
    ini-like file. In particular PKI CS.cfg.
    
    In an attempt to be more efficient a substring search,
    using startswith(), is used before calling a regular
    expression match.
    
    The problem is that if the requested directive is a
    substring of a different one then it will pass the
    startswith() and fail the regular expression match
    with a ValueError, assuming it is malformed.
    
    There is no need for this. The caller must be able to
    handle None as a response anyway. So continue if
    no match is found.
    
    This was seen when PKI dropped storing certificate blobs
    in CS.cfg. The CA certificate is stored in ca.signing.cert.
    If it isn't present then ca.signing.certnickname will match
    the substring but not the directive. This should not be
    treated as an error.
    
    Fixes: https://pagure.io/freeipa/issue/9506
    
    Signed-off-by: Rob Crittenden <rcritten@redhat.com>
    Reviewed-By: Florence Blanc-Renaud <flo@redhat.com>
    
        
file modified
+4 -1