2013-01-29 05:16:19

by majianpeng

[permalink] [raw]
Subject: [PATCH 1/2] nfsd: Fix memleak.

SW4gZnVuYyBzdmNfZXhwb3J0X3BhcnNlLHRoZSB1dWlkIHdoaWNoIHVzZWQga21lbWR1cCB0byBh
bGxvYyB3aWxsIGJlDQpjaGFuZ2VkIGluIGZ1bmMgZXhwb3J0X3VwZGF0ZS5TbyB0aGUgbGF0ZXIg
a2ZyZWUgZG9uJ3QgZnJlZSB0aGlzIG1lbW9yeS4NCkFuZCBpdCBjYW4ndCBiZSBmcmVlIGluIGZ1
bmMgc3ZjX2V4cG9ydF9wYXJzZSBiZWNhdXNlIG90aGVyIHBsYWNlIHN0aWxsDQp1c2VkLlNvIHB1
dCB0aGlzIG9wZXJhdGlvbiBpbiBmdW5jIHN2Y19leHBvcnRfcHV0Lg0KDQpTaWduZWQtb2ZmLWJ5
OiBKaWFucGVuZyBNYSA8bWFqaWFucGVuZ0BnbWFpbC5jb20+DQotLS0NCiBmcy9uZnNkL2V4cG9y
dC5jIHwgICAgMSArDQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspDQoNCmRpZmYgLS1n
aXQgYS9mcy9uZnNkL2V4cG9ydC5jIGIvZnMvbmZzZC9leHBvcnQuYw0KaW5kZXggYTM5NDZjZi4u
NDUxNTllZSAxMDA2NDQNCi0tLSBhL2ZzL25mc2QvZXhwb3J0LmMNCisrKyBiL2ZzL25mc2QvZXhw
b3J0LmMNCkBAIC0zMTUsNiArMzE1LDcgQEAgc3RhdGljIHZvaWQgc3ZjX2V4cG9ydF9wdXQoc3Ry
dWN0IGtyZWYgKnJlZikNCiAJcGF0aF9wdXQoJmV4cC0+ZXhfcGF0aCk7DQogCWF1dGhfZG9tYWlu
X3B1dChleHAtPmV4X2NsaWVudCk7DQogCW5mc2Q0X2ZzbG9jc19mcmVlKCZleHAtPmV4X2ZzbG9j
cyk7DQorCWtmcmVlKGV4cC0+ZXhfdXVpZCk7DQogCWtmcmVlKGV4cCk7DQogfQ0KIA0KLS0gDQox
LjcuOS41DQo=



2013-01-29 22:29:46

by J. Bruce Fields

[permalink] [raw]
Subject: Re: [PATCH 1/2] nfsd: Fix memleak.

On Tue, Jan 29, 2013 at 01:16:01PM +0800, majianpeng wrote:
> In func svc_export_parse,the uuid which used kmemdup to alloc will be
> changed in func export_update.So the later kfree don't free this memory.
> And it can't be free in func svc_export_parse because other place still
> used.So put this operation in func svc_export_put.

Applying, thanks.--b.

>
> Signed-off-by: Jianpeng Ma <[email protected]>
> ---
> fs/nfsd/export.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c
> index a3946cf..45159ee 100644
> --- a/fs/nfsd/export.c
> +++ b/fs/nfsd/export.c
> @@ -315,6 +315,7 @@ static void svc_export_put(struct kref *ref)
> path_put(&exp->ex_path);
> auth_domain_put(exp->ex_client);
> nfsd4_fslocs_free(&exp->ex_fslocs);
> + kfree(exp->ex_uuid);
> kfree(exp);
> }
>
> --
> 1.7.9.5