Fixed NULL pointer dereference in PKCS7_dataDecode reported by David Ramos in PR#3339
This commit is contained in:
parent
fce3821111
commit
2d2e0479eb
@ -440,6 +440,11 @@ BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert)
|
|||||||
{
|
{
|
||||||
case NID_pkcs7_signed:
|
case NID_pkcs7_signed:
|
||||||
data_body=PKCS7_get_octet_string(p7->d.sign->contents);
|
data_body=PKCS7_get_octet_string(p7->d.sign->contents);
|
||||||
|
if (!PKCS7_is_detached(p7) && data_body == NULL)
|
||||||
|
{
|
||||||
|
PKCS7err(PKCS7_F_PKCS7_DATADECODE,PKCS7_R_INVALID_SIGNED_DATA_TYPE);
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
md_sk=p7->d.sign->md_algs;
|
md_sk=p7->d.sign->md_algs;
|
||||||
break;
|
break;
|
||||||
case NID_pkcs7_signedAndEnveloped:
|
case NID_pkcs7_signedAndEnveloped:
|
||||||
|
@ -456,6 +456,7 @@ void ERR_load_PKCS7_strings(void);
|
|||||||
#define PKCS7_R_ERROR_SETTING_CIPHER 121
|
#define PKCS7_R_ERROR_SETTING_CIPHER 121
|
||||||
#define PKCS7_R_INVALID_MIME_TYPE 131
|
#define PKCS7_R_INVALID_MIME_TYPE 131
|
||||||
#define PKCS7_R_INVALID_NULL_POINTER 143
|
#define PKCS7_R_INVALID_NULL_POINTER 143
|
||||||
|
#define PKCS7_R_INVALID_SIGNED_DATA_TYPE 155
|
||||||
#define PKCS7_R_MIME_NO_CONTENT_TYPE 132
|
#define PKCS7_R_MIME_NO_CONTENT_TYPE 132
|
||||||
#define PKCS7_R_MIME_PARSE_ERROR 133
|
#define PKCS7_R_MIME_PARSE_ERROR 133
|
||||||
#define PKCS7_R_MIME_SIG_PARSE_ERROR 134
|
#define PKCS7_R_MIME_SIG_PARSE_ERROR 134
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* crypto/pkcs7/pkcs7err.c */
|
/* crypto/pkcs7/pkcs7err.c */
|
||||||
/* ====================================================================
|
/* ====================================================================
|
||||||
* Copyright (c) 1999-2007 The OpenSSL Project. All rights reserved.
|
* Copyright (c) 1999-2014 The OpenSSL Project. All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
@ -130,6 +130,7 @@ static ERR_STRING_DATA PKCS7_str_reasons[]=
|
|||||||
{ERR_REASON(PKCS7_R_ERROR_SETTING_CIPHER),"error setting cipher"},
|
{ERR_REASON(PKCS7_R_ERROR_SETTING_CIPHER),"error setting cipher"},
|
||||||
{ERR_REASON(PKCS7_R_INVALID_MIME_TYPE) ,"invalid mime type"},
|
{ERR_REASON(PKCS7_R_INVALID_MIME_TYPE) ,"invalid mime type"},
|
||||||
{ERR_REASON(PKCS7_R_INVALID_NULL_POINTER),"invalid null pointer"},
|
{ERR_REASON(PKCS7_R_INVALID_NULL_POINTER),"invalid null pointer"},
|
||||||
|
{ERR_REASON(PKCS7_R_INVALID_SIGNED_DATA_TYPE),"invalid signed data type"},
|
||||||
{ERR_REASON(PKCS7_R_MIME_NO_CONTENT_TYPE),"mime no content type"},
|
{ERR_REASON(PKCS7_R_MIME_NO_CONTENT_TYPE),"mime no content type"},
|
||||||
{ERR_REASON(PKCS7_R_MIME_PARSE_ERROR) ,"mime parse error"},
|
{ERR_REASON(PKCS7_R_MIME_PARSE_ERROR) ,"mime parse error"},
|
||||||
{ERR_REASON(PKCS7_R_MIME_SIG_PARSE_ERROR),"mime sig parse error"},
|
{ERR_REASON(PKCS7_R_MIME_SIG_PARSE_ERROR),"mime sig parse error"},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user