Commit 330dcb09 authored by Matt Caswell's avatar Matt Caswell
Browse files

Add a return value check



If the call to OBJ_find_sigid_by_algs fails to find the relevant NID then
we should set the NID to NID_undef.

Reviewed-by: default avatarRichard Levitte <levitte@openssl.org>
parent 44bf7119
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -3326,7 +3326,7 @@ static int tls12_get_pkey_idx(unsigned char sig_alg)
static void tls1_lookup_sigalg(int *phash_nid, int *psign_nid,
static void tls1_lookup_sigalg(int *phash_nid, int *psign_nid,
                               int *psignhash_nid, const unsigned char *data)
                               int *psignhash_nid, const unsigned char *data)
{
{
    int sign_nid = 0, hash_nid = 0;
    int sign_nid = NID_undef, hash_nid = NID_undef;
    if (!phash_nid && !psign_nid && !psignhash_nid)
    if (!phash_nid && !psign_nid && !psignhash_nid)
        return;
        return;
    if (phash_nid || psignhash_nid) {
    if (phash_nid || psignhash_nid) {
@@ -3340,9 +3340,9 @@ static void tls1_lookup_sigalg(int *phash_nid, int *psign_nid,
            *psign_nid = sign_nid;
            *psign_nid = sign_nid;
    }
    }
    if (psignhash_nid) {
    if (psignhash_nid) {
        if (sign_nid && hash_nid)
        if (sign_nid == NID_undef || hash_nid == NID_undef
            OBJ_find_sigid_by_algs(psignhash_nid, hash_nid, sign_nid);
                || OBJ_find_sigid_by_algs(psignhash_nid, hash_nid,
        else
                                          sign_nid) <= 0)
            *psignhash_nid = NID_undef;
            *psignhash_nid = NID_undef;
    }
    }
}
}