summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2017-02-07 16:20:53 +0300
committerJohannes Berg <johannes.berg@intel.com>2017-02-08 10:05:07 +0100
commitb2347a322d1f6f93f1a39fe17ed08628fc959351 (patch)
tree6276bbd2af92b53346aa7e50871fe8069ad591e9
parent26717828b75dd5c46e97f7f4a9b937d038bb2852 (diff)
downloadlinux-b2347a322d1f6f93f1a39fe17ed08628fc959351.tar.gz
linux-b2347a322d1f6f93f1a39fe17ed08628fc959351.tar.bz2
linux-b2347a322d1f6f93f1a39fe17ed08628fc959351.zip
mac80211: check for allocation failure in debugfs code
kmalloc() can fail. Also let's move the allocation out of the declaration block so it's easier to read. Fixes: 4a5eccaa9350 ("mac80211: Show pending txqlen in debugfs.") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r--net/mac80211/debugfs.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/net/mac80211/debugfs.c b/net/mac80211/debugfs.c
index 47bea0babe78..5fae001f286c 100644
--- a/net/mac80211/debugfs.c
+++ b/net/mac80211/debugfs.c
@@ -249,12 +249,19 @@ static ssize_t misc_read(struct file *file, char __user *user_buf,
struct ieee80211_local *local = file->private_data;
/* Max len of each line is 16 characters, plus 9 for 'pending:\n' */
size_t bufsz = IEEE80211_MAX_QUEUES * 16 + 9;
- char *buf = kzalloc(bufsz, GFP_KERNEL);
- char *pos = buf, *end = buf + bufsz - 1;
+ char *buf;
+ char *pos, *end;
ssize_t rv;
int i;
int ln;
+ buf = kzalloc(bufsz, GFP_KERNEL);
+ if (!buf)
+ return -ENOMEM;
+
+ pos = buf;
+ end = buf + bufsz - 1;
+
pos += scnprintf(pos, end - pos, "pending:\n");
for (i = 0; i < IEEE80211_MAX_QUEUES; i++) {