Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
btwise
OpenCorePKG_MOD
提交
4ad7a1c7
O
OpenCorePKG_MOD
项目概览
btwise
/
OpenCorePKG_MOD
通知
26
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
OpenCorePKG_MOD
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4ad7a1c7
编写于
2月 21, 2019
作者:
V
vit9696
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Rename Base64Decode to OcBase64Decode and fix its prototype to be close to EDK2 for later migration
上级
6511ba6b
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
23 addition
and
19 deletion
+23
-19
Include/Library/OcMiscLib.h
Include/Library/OcMiscLib.h
+5
-2
Library/OcMiscLib/Base64Decode.c
Library/OcMiscLib/Base64Decode.c
+8
-7
Library/OcXmlLib/OcXmlLib.c
Library/OcXmlLib/OcXmlLib.c
+10
-10
未找到文件。
Include/Library/OcMiscLib.h
浏览文件 @
4ad7a1c7
...
...
@@ -25,6 +25,8 @@ typedef struct {
// Base64Decode
/**
TODO: edk2 now has its implementation in BaseLib, review it and use once it appears in UDK.
@param[in] EncodedData A pointer to the data to convert.
@param[in] EncodedLength The length of data to convert.
@param[in] DecodedData A pointer to location to store the decoded data.
...
...
@@ -32,8 +34,9 @@ typedef struct {
@retval TRUE on success.
**/
BOOLEAN
Base64Decode
(
RETURN_STATUS
EFIAPI
OcBase64Decode
(
IN
CONST
CHAR8
*
EncodedData
,
IN
UINTN
EncodedLength
,
OUT
UINT8
*
DecodedData
,
...
...
Library/OcMiscLib/Base64Decode.c
浏览文件 @
4ad7a1c7
...
...
@@ -50,8 +50,9 @@ STATIC CONST UINT8 D[] = {
66
,
66
,
66
,
66
,
66
,
66
};
BOOLEAN
Base64Decode
(
RETURN_STATUS
EFIAPI
OcBase64Decode
(
IN
CONST
CHAR8
*
EncodedData
,
IN
UINTN
EncodedLength
,
OUT
UINT8
*
DecodedData
,
...
...
@@ -70,7 +71,7 @@ Base64Decode (
case
WHITESPACE
:
continue
;
/* skip whitespace */
case
INVALID
:
return
FALSE
;
/* invalid input, return error */
return
RETURN_INVALID_PARAMETER
;
/* invalid input, return error */
case
EQUALS
:
/* pad character, end of data */
EncodedData
=
End
;
continue
;
...
...
@@ -79,7 +80,7 @@ Base64Decode (
Iter
++
;
/* increment the number of iteration */
/* If the buffer is full, split it into bytes */
if
(
Iter
==
4
)
{
if
((
Len
+=
3
)
>
*
DecodedLength
)
return
FALSE
;
/* buffer overflow */
if
((
Len
+=
3
)
>
*
DecodedLength
)
return
RETURN_BUFFER_TOO_SMALL
;
/* buffer overflow */
*
(
DecodedData
++
)
=
(
Buf
>>
16U
)
&
255U
;
*
(
DecodedData
++
)
=
(
Buf
>>
8U
)
&
255U
;
*
(
DecodedData
++
)
=
Buf
&
255U
;
...
...
@@ -89,14 +90,14 @@ Base64Decode (
}
if
(
Iter
==
3
)
{
if
((
Len
+=
2
)
>
*
DecodedLength
)
return
FALSE
;
/* buffer overflow */
if
((
Len
+=
2
)
>
*
DecodedLength
)
return
RETURN_BUFFER_TOO_SMALL
;
/* buffer overflow */
*
(
DecodedData
++
)
=
(
Buf
>>
10U
)
&
255U
;
*
(
DecodedData
++
)
=
(
Buf
>>
2U
)
&
255U
;
}
else
if
(
Iter
==
2
)
{
if
(
++
Len
>
*
DecodedLength
)
return
FALSE
;
/* buffer overflow */
if
(
++
Len
>
*
DecodedLength
)
return
RETURN_BUFFER_TOO_SMALL
;
/* buffer overflow */
*
(
DecodedData
++
)
=
(
Buf
>>
4U
)
&
255U
;
}
*
DecodedLength
=
Len
;
/* modify to reflect the actual output size */
return
TRUE
;
return
EFI_SUCCESS
;
}
Library/OcXmlLib/OcXmlLib.c
浏览文件 @
4ad7a1c7
...
...
@@ -1099,9 +1099,9 @@ PlistDataValue (
UINT32
*
Size
)
{
CONST
CHAR8
*
Content
;
UINTN
Length
;
BOOLEAN
Result
;
CONST
CHAR8
*
Content
;
UINTN
Length
;
RETURN_STATUS
Result
;
if
(
PlistNodeCast
(
Node
,
PLIST_NODE_TYPE_DATA
)
==
NULL
)
{
return
FALSE
;
...
...
@@ -1114,9 +1114,9 @@ PlistDataValue (
}
Length
=
*
Size
;
Result
=
Base64Decode
(
Content
,
AsciiStrLen
(
Content
),
Buffer
,
&
Length
);
Result
=
Oc
Base64Decode
(
Content
,
AsciiStrLen
(
Content
),
Buffer
,
&
Length
);
if
(
Result
&&
(
UINT32
)
Length
==
Length
)
{
if
(
!
RETURN_ERROR
(
Result
)
&&
(
UINT32
)
Length
==
Length
)
{
*
Size
=
(
UINT32
)
Length
;
return
TRUE
;
}
...
...
@@ -1184,16 +1184,16 @@ PlistMetaDataValue (
UINT32
*
Size
)
{
CONST
CHAR8
*
Content
;
UINTN
Length
;
BOOLEAN
Result
;
CONST
CHAR8
*
Content
;
UINTN
Length
;
RETURN_STATUS
Result
;
if
(
PlistNodeCast
(
Node
,
PLIST_NODE_TYPE_DATA
)
!=
NULL
)
{
Content
=
XmlNodeContent
(
Node
);
if
(
Content
!=
NULL
)
{
Result
=
Base64Decode
(
Content
,
AsciiStrLen
(
Content
),
Buffer
,
&
Length
);
Result
=
Oc
Base64Decode
(
Content
,
AsciiStrLen
(
Content
),
Buffer
,
&
Length
);
if
(
Result
&&
(
UINT32
)
Length
==
Length
)
{
if
(
!
RETURN_ERROR
(
Result
)
&&
(
UINT32
)
Length
==
Length
)
{
*
Size
=
(
UINT32
)
Length
;
}
else
{
return
FALSE
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录