Skip to content

Commit

Permalink
memory corruption in X.25 facilities parsing
Browse files Browse the repository at this point in the history
Signed-of-by: Andrew Hendry <[email protected]>

Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
AndrewHendry authored and davem330 committed Nov 4, 2010
1 parent 41bb78b commit a6331d6
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 4 deletions.
8 changes: 4 additions & 4 deletions net/x25/x25_facilities.c
Original file line number Diff line number Diff line change
Expand Up @@ -134,15 +134,15 @@ int x25_parse_facilities(struct sk_buff *skb, struct x25_facilities *facilities,
case X25_FAC_CLASS_D:
switch (*p) {
case X25_FAC_CALLING_AE:
if (p[1] > X25_MAX_DTE_FACIL_LEN)
break;
if (p[1] > X25_MAX_DTE_FACIL_LEN || p[1] <= 1)
return 0;
dte_facs->calling_len = p[2];
memcpy(dte_facs->calling_ae, &p[3], p[1] - 1);
*vc_fac_mask |= X25_MASK_CALLING_AE;
break;
case X25_FAC_CALLED_AE:
if (p[1] > X25_MAX_DTE_FACIL_LEN)
break;
if (p[1] > X25_MAX_DTE_FACIL_LEN || p[1] <= 1)
return 0;
dte_facs->called_len = p[2];
memcpy(dte_facs->called_ae, &p[3], p[1] - 1);
*vc_fac_mask |= X25_MASK_CALLED_AE;
Expand Down
2 changes: 2 additions & 0 deletions net/x25/x25_in.c
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,8 @@ static int x25_state1_machine(struct sock *sk, struct sk_buff *skb, int frametyp
&x25->vc_facil_mask);
if (len > 0)
skb_pull(skb, len);
else
return -1;
/*
* Copy any Call User Data.
*/
Expand Down

0 comments on commit a6331d6

Please sign in to comment.