[DCCP]: fix memory leak and clean up style - dccp_feat_empty_confirm()
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 <jesper.juhl@gmail.com> Acked-by: Ian McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
d725fdc802
Коммит
e576de82ee
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче