summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorSubash Abhinov Kasiviswanathan <subashab@codeaurora.org>2016-11-07 16:44:44 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-11-09 10:46:41 -0800
commitd01a8a0da053672a392636faf6288ca76e66c743 (patch)
tree4d12a278c4a9e41ab3a6d927a499b10a5e6dbfd6 /net
parent4a91ea36cbf0f5a782b5b6f69604ed70bd0ab6ba (diff)
net: rmnet_data: Handle leaked packets when adding MAP fields in TX
Some creators of skb's may fail to set sufficient headroom or tailroom to stamp the MAP header or tailroom respectively when transmitting packets to rmnet_data. In these cases, rmnet_data was failing to free these packets which lead to out of memory scenarios in low memory targets. Free these skb's in these scenarios. CRs-Fixed: 1086873 Change-Id: I8bd2eb93393766bf9c301766e525354770577e0a Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
Diffstat (limited to 'net')
-rw-r--r--net/rmnet_data/rmnet_data_handlers.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/rmnet_data/rmnet_data_handlers.c b/net/rmnet_data/rmnet_data_handlers.c
index 185b609e637f..35b94e9da0d9 100644
--- a/net/rmnet_data/rmnet_data_handlers.c
+++ b/net/rmnet_data/rmnet_data_handlers.c
@@ -505,6 +505,7 @@ static int rmnet_map_egress_handler(struct sk_buff *skb,
if (pskb_expand_head(skb, required_headroom, 0, GFP_KERNEL)) {
LOGD("Failed to add headroom of %d bytes",
required_headroom);
+ kfree_skb(skb);
return 1;
}
}
@@ -528,6 +529,7 @@ static int rmnet_map_egress_handler(struct sk_buff *skb,
if (!map_header) {
LOGD("%s", "Failed to add MAP header to egress packet");
+ kfree_skb(skb);
return 1;
}