@@ -159,12 +159,17 @@ static struct sub_seq *tipc_subseq_alloc(u32 cnt)
static struct name_seq *tipc_nameseq_create(u32 type, struct hlist_head *seq_head)
{
struct name_seq *nseq = kzalloc(sizeof(*nseq), GFP_ATOMIC);
- struct sub_seq *sseq = tipc_subseq_alloc(1);
+ struct sub_seq *sseq;
- if (!nseq || !sseq) {
+ if (!nseq) {
pr_warn("Name sequence creation failed, no memory\n");
+ return NULL;
+ }
+
+ sseq = tipc_subseq_alloc(1);
+ if (!sseq) {
+ pr_warn("Sub sequence creation failed, no memory\n");
kfree(nseq);
- kfree(sseq);
return NULL;
}
if nseq allocate failed, sseq is no need to alloc. so separate the check. Signed-off-by: Wang Weidong <wangweidong1@huawei.com> --- net/tipc/name_table.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)