Commit 2d2e0479 authored by Matt Caswell's avatar Matt Caswell
Browse files

Fixed NULL pointer dereference in PKCS7_dataDecode reported by David Ramos in PR#3339

parent fce38211
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -440,6 +440,11 @@ BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert)
		{
	case NID_pkcs7_signed:
		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;
		break;
	case NID_pkcs7_signedAndEnveloped:
+1 −0
Original line number Diff line number Diff line
@@ -456,6 +456,7 @@ void ERR_load_PKCS7_strings(void);
#define PKCS7_R_ERROR_SETTING_CIPHER			 121
#define PKCS7_R_INVALID_MIME_TYPE			 131
#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_PARSE_ERROR			 133
#define PKCS7_R_MIME_SIG_PARSE_ERROR			 134
+2 −1
Original line number Diff line number Diff line
/* 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
 * 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_INVALID_MIME_TYPE)   ,"invalid mime type"},
{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_PARSE_ERROR)    ,"mime parse error"},
{ERR_REASON(PKCS7_R_MIME_SIG_PARSE_ERROR),"mime sig parse error"},