| To: | xfs@xxxxxxxxxxx |
|---|---|
| Subject: | [PATCH] xfs: fix two memory leaks in xfs_attr_list.c error paths |
| From: | Mateusz Guzik <mguzik@xxxxxxxxxx> |
| Date: | Wed, 10 Feb 2016 19:35:37 +0100 |
| Cc: | <stable@xxxxxxxxxxxxxxx> |
| Delivered-to: | xfs@xxxxxxxxxxx |
This plugs 2 trivial leaks in xfs_attr_shortform_list and
xfs_attr3_leaf_list_int.
Signed-off-by: Mateusz Guzik <mguzik@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx>
---
fs/xfs/xfs_attr_list.c | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/fs/xfs/xfs_attr_list.c b/fs/xfs/xfs_attr_list.c
index 0ef7c2e..4fa1482 100644
--- a/fs/xfs/xfs_attr_list.c
+++ b/fs/xfs/xfs_attr_list.c
@@ -202,8 +202,10 @@ xfs_attr_shortform_list(xfs_attr_list_context_t *context)
sbp->namelen,
sbp->valuelen,
&sbp->name[sbp->namelen]);
- if (error)
+ if (error) {
+ kmem_free(sbuf);
return error;
+ }
if (context->seen_enough)
break;
cursor->offset++;
@@ -454,14 +456,13 @@ xfs_attr3_leaf_list_int(
args.rmtblkcnt = xfs_attr3_rmt_blocks(
args.dp->i_mount,
valuelen);
retval = xfs_attr_rmtval_get(&args);
- if (retval)
- return retval;
- retval = context->put_listent(context,
- entry->flags,
- name_rmt->name,
- (int)name_rmt->namelen,
- valuelen,
- args.value);
+ if (!retval)
+ retval = context->put_listent(context,
+ entry->flags,
+ name_rmt->name,
+ (int)name_rmt->namelen,
+ valuelen,
+ args.value);
kmem_free(args.value);
} else {
retval = context->put_listent(context,
--
1.8.3.1
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: [PATCH 0/8 v4] xfs: get rid of xfs_cluster_write, Christoph Hellwig |
|---|---|
| Next by Date: | [PATCH 2/2 v3] xfs_repair: new secondary superblock search method, Bill O'Donnell |
| Previous by Thread: | xfs_nondir_ilock_class lockdep warning, Tetsuo Handa |
| Next by Thread: | Re: [PATCH] xfs: fix two memory leaks in xfs_attr_list.c error paths, Eric Sandeen |
| Indexes: | [Date] [Thread] [Top] [All Lists] |