Commit 244d7b28 authored by Kurt Roeckx's avatar Kurt Roeckx
Browse files

Fix undefined behaviour when printing the X509 serial



Found by afl

Reviewed-by: default avatarAndy Polyakov <appro@openssl.org>
GH: #2230
parent a470f023
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -93,12 +93,14 @@ int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflags,
            l = -1;
        }
        if (l != -1) {
            unsigned long ul;
            if (bs->type == V_ASN1_NEG_INTEGER) {
                l = -l;
                ul = 0 - (unsigned long)l;
                neg = "-";
            } else
                ul = l;
                neg = "";
            if (BIO_printf(bp, " %s%lu (%s0x%lx)\n", neg, l, neg, l) <= 0)
            if (BIO_printf(bp, " %s%lu (%s0x%lx)\n", neg, ul, neg, ul) <= 0)
                goto err;
        } else {
            neg = (bs->type == V_ASN1_NEG_INTEGER) ? " (Negative)" : "";