Skip to content

Commit

Permalink
[DCCP]: fix memory leak and clean up style - dccp_feat_empty_confirm()
Browse files Browse the repository at this point in the history
There's a memory leak in net/dccp/feat.c::dccp_feat_empty_confirm().  If we
hit the 'default:' case of the 'switch' statement, then we return without
freeing 'opt', thus leaking 'struct dccp_opt_pend' bytes.

The leak is fixed easily enough by adding a kfree(opt); before the return
statement.

The patch also changes the layout of the 'switch' to be more in line with
CodingStyle.

Signed-off-by: Jesper Juhl <[email protected]>
Acked-by: Ian McDonald <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
Jesper Juhl authored and David S. Miller committed Aug 14, 2007
1 parent d725fdc commit e576de8
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions net/dccp/feat.c
Original file line number Diff line number Diff line change
Expand Up @@ -327,10 +327,16 @@ static void dccp_feat_empty_confirm(struct dccp_minisock *dmsk,
}

switch (type) {
case DCCPO_CHANGE_L: opt->dccpop_type = DCCPO_CONFIRM_R; break;
case DCCPO_CHANGE_R: opt->dccpop_type = DCCPO_CONFIRM_L; break;
default: DCCP_WARN("invalid type %d\n", type); return;

case DCCPO_CHANGE_L:
opt->dccpop_type = DCCPO_CONFIRM_R;
break;
case DCCPO_CHANGE_R:
opt->dccpop_type = DCCPO_CONFIRM_L;
break;
default:
DCCP_WARN("invalid type %d\n", type);
kfree(opt);
return;
}
opt->dccpop_feat = feature;
opt->dccpop_val = NULL;
Expand Down

0 comments on commit e576de8

Please sign in to comment.