rds: Fix rds message leak in rds_message_map_pages
Subsystems (3)
PATCH 1/1 rds: Fix rds message leak in rds_message_map_pages
The sgs allocation error path leaks the allocated message.
Signed-off-by Pavel Emelyanov <[email protected]>
---
net/rds/message.c +3 -1
@@ -249,8 +249,10 @@ struct rds_message *rds_message_map_pages(unsigned long *page_addrs, unsigned in rm->m_inc.i_hdr.h_len =cpu_to_be32 (total_len); rm->data.op_nents =ceil (total_len,PAGE_SIZE ); rm->data.op_sg =rds_message_alloc_sgs (rm, num_sgs); -if (!rm->data.op_sg) +if (!rm->data.op_sg) { +rds_message_put (rm);return ERR_PTR (-ENOMEM ); + }for (i =0 ; i < rm->data.op_nents; ++i) { sg_set_page(&rm->data.op_sg[i],
Quoted 12 lines · Pavel Emelyanov
The sgs allocation error path leaks the allocated message.
Signed-off-by Pavel Emelyanov<[email protected]>---
net/rds/message.c +0
-0@@ -249,8 +249,10 @@ struct rds_message *rds_message_map_pages(unsigned long *page_addrs, unsigned in rm->m_inc.i_hdr.h_len =cpu_to_be32 (total_len);
net/rds/message.c struct rds_message *rds_message_map_pages(unsigned long *page_addrs, unsigned in · line 258
Quoted 10 lines
net/rds/message.c +3
-1rm->data.op_nents =ceil (total_len,PAGE_SIZE ); rm->data.op_sg =rds_message_alloc_sgs (rm, num_sgs); -if (!rm->data.op_sg) +if (!rm->data.op_sg) { +rds_message_put (rm);return ERR_PTR (-ENOMEM ); + }for (i =0 ; i< rm->data.op_nents; ++i) { sg_set_page(&rm->data.op_sg[i],
Acked-by Andy Grover <[email protected]>
-- Andy
From: Andy Grover <[email protected]>
Date: Mon, 08 Nov 2010 11:40:53 -0800
Quoted 4 lines · Pavel Emelyanov
Quoted 3 lines
The sgs allocation error path leaks the allocated message.
Signed-off-by Pavel Emelyanov<[email protected]>
...
Quoted 1 line
Acked-by Andy Grover <[email protected]>
Applied, thanks.