Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Achou.Wang
accel-ppp
提交
03c5bd91
A
accel-ppp
项目概览
Achou.Wang
/
accel-ppp
通知
6
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
accel-ppp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
03c5bd91
编写于
10月 10, 2011
作者:
K
Kozlov Dmitry
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ppp: options header sanity check
上级
676a6f6e
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
61 addition
and
27 deletion
+61
-27
accel-pppd/ppp/ppp_ccp.c
accel-pppd/ppp/ppp_ccp.c
+16
-8
accel-pppd/ppp/ppp_ipcp.c
accel-pppd/ppp/ppp_ipcp.c
+15
-6
accel-pppd/ppp/ppp_ipv6cp.c
accel-pppd/ppp/ppp_ipv6cp.c
+15
-6
accel-pppd/ppp/ppp_lcp.c
accel-pppd/ppp/ppp_lcp.c
+15
-7
未找到文件。
accel-pppd/ppp/ppp_ccp.c
浏览文件 @
03c5bd91
...
...
@@ -387,20 +387,19 @@ static int ccp_recv_conf_req(struct ppp_ccp_t *ccp, uint8_t *data, int size)
while
(
size
>
0
)
{
hdr
=
(
struct
ccp_opt_hdr_t
*
)
data
;
if
(
!
hdr
->
len
||
hdr
->
len
>
size
)
break
;
ropt
=
_malloc
(
sizeof
(
*
ropt
));
memset
(
ropt
,
0
,
sizeof
(
*
ropt
));
if
(
hdr
->
len
>
size
)
ropt
->
len
=
size
;
else
ropt
->
len
=
hdr
->
len
;
ropt
->
hdr
=
hdr
;
ropt
->
len
=
hdr
->
len
;
ropt
->
state
=
CCP_OPT_NONE
;
list_add_tail
(
&
ropt
->
entry
,
&
ccp
->
ropt_list
);
data
+=
ropt
->
len
;
size
-=
ropt
->
len
;
data
+=
hdr
->
len
;
size
-=
hdr
->
len
;
}
if
(
conf_ppp_verbose
)
...
...
@@ -483,6 +482,9 @@ static int ccp_recv_conf_rej(struct ppp_ccp_t *ccp, uint8_t *data, int size)
while
(
size
>
0
)
{
hdr
=
(
struct
ccp_opt_hdr_t
*
)
data
;
if
(
!
hdr
->
len
||
hdr
->
len
>
size
)
break
;
list_for_each_entry
(
lopt
,
&
ccp
->
options
,
entry
)
{
if
(
lopt
->
id
==
hdr
->
id
)
{
if
(
!
lopt
->
h
->
recv_conf_rej
)
...
...
@@ -521,6 +523,9 @@ static int ccp_recv_conf_nak(struct ppp_ccp_t *ccp, uint8_t *data, int size)
while
(
size
>
0
)
{
hdr
=
(
struct
ccp_opt_hdr_t
*
)
data
;
if
(
!
hdr
->
len
||
hdr
->
len
>
size
)
break
;
list_for_each_entry
(
lopt
,
&
ccp
->
options
,
entry
)
{
if
(
lopt
->
id
==
hdr
->
id
)
{
if
(
conf_ppp_verbose
)
{
...
...
@@ -561,6 +566,9 @@ static int ccp_recv_conf_ack(struct ppp_ccp_t *ccp, uint8_t *data, int size)
while
(
size
>
0
)
{
hdr
=
(
struct
ccp_opt_hdr_t
*
)
data
;
if
(
!
hdr
->
len
||
hdr
->
len
>
size
)
break
;
list_for_each_entry
(
lopt
,
&
ccp
->
options
,
entry
)
{
if
(
lopt
->
id
==
hdr
->
id
)
{
if
(
conf_ppp_verbose
)
{
...
...
accel-pppd/ppp/ppp_ipcp.c
浏览文件 @
03c5bd91
...
...
@@ -392,19 +392,19 @@ static int ipcp_recv_conf_req(struct ppp_ipcp_t *ipcp, uint8_t *data, int size)
while
(
size
>
0
)
{
hdr
=
(
struct
ipcp_opt_hdr_t
*
)
data
;
if
(
!
hdr
->
len
||
hdr
->
len
>
size
)
break
;
ropt
=
_malloc
(
sizeof
(
*
ropt
));
memset
(
ropt
,
0
,
sizeof
(
*
ropt
));
if
(
hdr
->
len
>
size
)
ropt
->
len
=
size
;
else
ropt
->
len
=
hdr
->
len
;
ropt
->
hdr
=
hdr
;
ropt
->
len
=
hdr
->
len
;
ropt
->
state
=
IPCP_OPT_NONE
;
list_add_tail
(
&
ropt
->
entry
,
&
ipcp
->
ropt_list
);
data
+=
ropt
->
len
;
size
-=
ropt
->
len
;
data
+=
hdr
->
len
;
size
-=
hdr
->
len
;
}
list_for_each_entry
(
lopt
,
&
ipcp
->
options
,
entry
)
...
...
@@ -504,6 +504,9 @@ static int ipcp_recv_conf_rej(struct ppp_ipcp_t *ipcp, uint8_t *data, int size)
while
(
size
>
0
)
{
hdr
=
(
struct
ipcp_opt_hdr_t
*
)
data
;
if
(
!
hdr
->
len
||
hdr
->
len
>
size
)
break
;
list_for_each_entry
(
lopt
,
&
ipcp
->
options
,
entry
)
{
if
(
lopt
->
id
==
hdr
->
id
)
{
if
(
!
lopt
->
h
->
recv_conf_rej
)
...
...
@@ -542,6 +545,9 @@ static int ipcp_recv_conf_nak(struct ppp_ipcp_t *ipcp, uint8_t *data, int size)
while
(
size
>
0
)
{
hdr
=
(
struct
ipcp_opt_hdr_t
*
)
data
;
if
(
!
hdr
->
len
||
hdr
->
len
>
size
)
break
;
list_for_each_entry
(
lopt
,
&
ipcp
->
options
,
entry
)
{
if
(
lopt
->
id
==
hdr
->
id
)
{
if
(
conf_ppp_verbose
)
{
...
...
@@ -582,6 +588,9 @@ static int ipcp_recv_conf_ack(struct ppp_ipcp_t *ipcp, uint8_t *data, int size)
while
(
size
>
0
)
{
hdr
=
(
struct
ipcp_opt_hdr_t
*
)
data
;
if
(
!
hdr
->
len
||
hdr
->
len
>
size
)
break
;
list_for_each_entry
(
lopt
,
&
ipcp
->
options
,
entry
)
{
if
(
lopt
->
id
==
hdr
->
id
)
{
if
(
conf_ppp_verbose
)
{
...
...
accel-pppd/ppp/ppp_ipv6cp.c
浏览文件 @
03c5bd91
...
...
@@ -392,19 +392,19 @@ static int ipv6cp_recv_conf_req(struct ppp_ipv6cp_t *ipv6cp, uint8_t *data, int
while
(
size
>
0
)
{
hdr
=
(
struct
ipv6cp_opt_hdr_t
*
)
data
;
if
(
!
hdr
->
len
||
hdr
->
len
>
size
)
break
;
ropt
=
_malloc
(
sizeof
(
*
ropt
));
memset
(
ropt
,
0
,
sizeof
(
*
ropt
));
if
(
hdr
->
len
>
size
)
ropt
->
len
=
size
;
else
ropt
->
len
=
hdr
->
len
;
ropt
->
hdr
=
hdr
;
ropt
->
len
=
hdr
->
len
;
ropt
->
state
=
IPV6CP_OPT_NONE
;
list_add_tail
(
&
ropt
->
entry
,
&
ipv6cp
->
ropt_list
);
data
+=
ropt
->
len
;
size
-=
ropt
->
len
;
data
+=
hdr
->
len
;
size
-=
hdr
->
len
;
}
list_for_each_entry
(
lopt
,
&
ipv6cp
->
options
,
entry
)
...
...
@@ -504,6 +504,9 @@ static int ipv6cp_recv_conf_rej(struct ppp_ipv6cp_t *ipv6cp, uint8_t *data, int
while
(
size
>
0
)
{
hdr
=
(
struct
ipv6cp_opt_hdr_t
*
)
data
;
if
(
!
hdr
->
len
||
hdr
->
len
>
size
)
break
;
list_for_each_entry
(
lopt
,
&
ipv6cp
->
options
,
entry
)
{
if
(
lopt
->
id
==
hdr
->
id
)
{
if
(
!
lopt
->
h
->
recv_conf_rej
)
...
...
@@ -542,6 +545,9 @@ static int ipv6cp_recv_conf_nak(struct ppp_ipv6cp_t *ipv6cp, uint8_t *data, int
while
(
size
>
0
)
{
hdr
=
(
struct
ipv6cp_opt_hdr_t
*
)
data
;
if
(
!
hdr
->
len
||
hdr
->
len
>
size
)
break
;
list_for_each_entry
(
lopt
,
&
ipv6cp
->
options
,
entry
)
{
if
(
lopt
->
id
==
hdr
->
id
)
{
if
(
conf_ppp_verbose
)
{
...
...
@@ -582,6 +588,9 @@ static int ipv6cp_recv_conf_ack(struct ppp_ipv6cp_t *ipv6cp, uint8_t *data, int
while
(
size
>
0
)
{
hdr
=
(
struct
ipv6cp_opt_hdr_t
*
)
data
;
if
(
!
hdr
->
len
||
hdr
->
len
>
size
)
break
;
list_for_each_entry
(
lopt
,
&
ipv6cp
->
options
,
entry
)
{
if
(
lopt
->
id
==
hdr
->
id
)
{
if
(
conf_ppp_verbose
)
{
...
...
accel-pppd/ppp/ppp_lcp.c
浏览文件 @
03c5bd91
...
...
@@ -368,20 +368,19 @@ static int lcp_recv_conf_req(struct ppp_lcp_t *lcp, uint8_t *data, int size)
while
(
size
>
0
)
{
hdr
=
(
struct
lcp_opt_hdr_t
*
)
data
;
if
(
!
hdr
->
len
||
hdr
->
len
>
size
)
break
;
ropt
=
_malloc
(
sizeof
(
*
ropt
));
memset
(
ropt
,
0
,
sizeof
(
*
ropt
));
if
(
hdr
->
len
>
size
)
ropt
->
len
=
size
;
else
ropt
->
len
=
hdr
->
len
;
ropt
->
hdr
=
hdr
;
ropt
->
len
=
hdr
->
len
;
ropt
->
state
=
LCP_OPT_NONE
;
list_add_tail
(
&
ropt
->
entry
,
&
lcp
->
ropt_list
);
data
+=
ropt
->
len
;
size
-=
ropt
->
len
;
data
+=
hdr
->
len
;
size
-=
hdr
->
len
;
}
list_for_each_entry
(
lopt
,
&
lcp
->
options
,
entry
)
...
...
@@ -460,6 +459,9 @@ static int lcp_recv_conf_rej(struct ppp_lcp_t *lcp, uint8_t *data, int size)
while
(
size
>
0
)
{
hdr
=
(
struct
lcp_opt_hdr_t
*
)
data
;
if
(
!
hdr
->
len
||
hdr
->
len
>
size
)
break
;
list_for_each_entry
(
lopt
,
&
lcp
->
options
,
entry
)
{
if
(
lopt
->
id
==
hdr
->
id
)
{
...
...
@@ -502,6 +504,9 @@ static int lcp_recv_conf_nak(struct ppp_lcp_t *lcp, uint8_t *data, int size)
while
(
size
>
0
)
{
hdr
=
(
struct
lcp_opt_hdr_t
*
)
data
;
if
(
!
hdr
->
len
||
hdr
->
len
>
size
)
break
;
list_for_each_entry
(
lopt
,
&
lcp
->
options
,
entry
)
{
if
(
lopt
->
id
==
hdr
->
id
)
{
...
...
@@ -542,6 +547,9 @@ static int lcp_recv_conf_ack(struct ppp_lcp_t *lcp, uint8_t *data, int size)
while
(
size
>
0
)
{
hdr
=
(
struct
lcp_opt_hdr_t
*
)
data
;
if
(
!
hdr
->
len
||
hdr
->
len
>
size
)
break
;
list_for_each_entry
(
lopt
,
&
lcp
->
options
,
entry
)
{
if
(
lopt
->
id
==
hdr
->
id
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录