+3
-1
fs/nfsd/nfs4xdr.c
+3
-1
fs/nfsd/nfs4xdr.c
···
2879
2879
* return the conflicting open:
2880
2880
*/
2881
2881
if (conf->len) {
2882
+
kfree(conf->data);
2882
2883
conf->len = 0;
2883
2884
conf->data = NULL;
2884
2885
goto again;
···
2892
2891
if (conf->len) {
2893
2892
p = xdr_encode_opaque_fixed(p, &ld->ld_clientid, 8);
2894
2893
p = xdr_encode_opaque(p, conf->data, conf->len);
2894
+
kfree(conf->data);
2895
2895
} else { /* non - nfsv4 lock in conflict, no clientid nor owner */
2896
2896
p = xdr_encode_hyper(p, (u64)0); /* clientid */
2897
2897
*p++ = cpu_to_be32(0); /* length of owner name */
···
2909
2907
nfserr = nfsd4_encode_stateid(xdr, &lock->lk_resp_stateid);
2910
2908
else if (nfserr == nfserr_denied)
2911
2909
nfserr = nfsd4_encode_lock_denied(xdr, &lock->lk_denied);
2912
-
kfree(lock->lk_denied.ld_owner.data);
2910
+
2913
2911
return nfserr;
2914
2912
}
2915
2913