History

tipc: fix a possible memory leak

The commit a8b9b96e959f3c035af20b1bd2ba67b0b7269b19 ("tipc: fix race in disc create/delete") leads to the following static checker warning: net/tipc/discover.c:352 tipc_disc_create() warn: possible memory leak of 'req' The risk of memory leak really exists in practice. Especially when it's failed to allocate memory for "req->buf", tipc_disc_create() doesn't free its allocated memory, instead just directly returns with ENOMEM error code. In this situation, memory leak, of course, happens.

Ying Xue committed 12 years ago

Commit 22e79871 parent a42c3a21 file · +3 −1Browse files

Unified · Split

net/tipc/discover.c+3−1
@@ -348,8 +348,10 @@ int tipc_disc_create(struct tipc_bearer *b_ptr, struct tipc_media_addr *dest) · 347 unmodified lines
348348 return -ENOMEM;
349349
350350 req->buf = tipc_buf_acquire(INT_H_SIZE);
351− if (!req->buf)
351+ if (!req->buf) {
352+ kfree(req);
352353 return -ENOMEM;
354+ }
353355
354356 tipc_disc_init_msg(req->buf, DSC_REQ_MSG, b_ptr);
355357 memcpy(&req->dest, dest, sizeof(*dest));