Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
59302b60
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
大约 1 年 前同步成功
通知
9
Star
18
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Openssl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
59302b60
编写于
5月 12, 2015
作者:
E
Emilia Kasper
提交者:
Matt Caswell
6月 11, 2015
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
PKCS#7: Fix NULL dereference with missing EncryptedContent.
CVE-2015-1790 Reviewed-by:
N
Rich Salz
<
rsalz@openssl.org
>
上级
f48b83b4
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
15 addition
and
1 deletion
+15
-1
crypto/pkcs7/pk7_doit.c
crypto/pkcs7/pk7_doit.c
+15
-1
未找到文件。
crypto/pkcs7/pk7_doit.c
浏览文件 @
59302b60
...
...
@@ -432,6 +432,12 @@ BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert)
switch
(
i
)
{
case
NID_pkcs7_signed
:
/*
* p7->d.sign->contents is a PKCS7 structure consisting of a contentType
* field and optional content.
* data_body is NULL if that structure has no (=detached) content
* or if the contentType is wrong (i.e., not "data").
*/
data_body
=
PKCS7_get_octet_string
(
p7
->
d
.
sign
->
contents
);
if
(
!
PKCS7_is_detached
(
p7
)
&&
data_body
==
NULL
)
{
PKCS7err
(
PKCS7_F_PKCS7_DATADECODE
,
...
...
@@ -443,6 +449,7 @@ BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert)
case
NID_pkcs7_signedAndEnveloped
:
rsk
=
p7
->
d
.
signed_and_enveloped
->
recipientinfo
;
md_sk
=
p7
->
d
.
signed_and_enveloped
->
md_algs
;
/* data_body is NULL if the optional EncryptedContent is missing. */
data_body
=
p7
->
d
.
signed_and_enveloped
->
enc_data
->
enc_data
;
enc_alg
=
p7
->
d
.
signed_and_enveloped
->
enc_data
->
algorithm
;
evp_cipher
=
EVP_get_cipherbyobj
(
enc_alg
->
algorithm
);
...
...
@@ -455,6 +462,7 @@ BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert)
case
NID_pkcs7_enveloped
:
rsk
=
p7
->
d
.
enveloped
->
recipientinfo
;
enc_alg
=
p7
->
d
.
enveloped
->
enc_data
->
algorithm
;
/* data_body is NULL if the optional EncryptedContent is missing. */
data_body
=
p7
->
d
.
enveloped
->
enc_data
->
enc_data
;
evp_cipher
=
EVP_get_cipherbyobj
(
enc_alg
->
algorithm
);
if
(
evp_cipher
==
NULL
)
{
...
...
@@ -468,6 +476,12 @@ BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert)
goto
err
;
}
/* Detached content must be supplied via in_bio instead. */
if
(
data_body
==
NULL
&&
in_bio
==
NULL
)
{
PKCS7err
(
PKCS7_F_PKCS7_DATADECODE
,
PKCS7_R_NO_CONTENT
);
goto
err
;
}
/* We will be checking the signature */
if
(
md_sk
!=
NULL
)
{
for
(
i
=
0
;
i
<
sk_X509_ALGOR_num
(
md_sk
);
i
++
)
{
...
...
@@ -593,7 +607,7 @@ BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert)
BIO_push
(
out
,
etmp
);
etmp
=
NULL
;
}
if
(
PKCS7_is_detached
(
p7
)
||
(
in_bio
!=
NULL
)
)
{
if
(
in_bio
!=
NULL
)
{
bio
=
in_bio
;
}
else
{
if
(
data_body
->
length
>
0
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录