From: NeilBrown nfsd4 could leak a stateid in a case of kmalloc failure; fix. Signed-off-by: Andy Adamson Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton --- 25-akpm/fs/nfsd/nfs4state.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletion(-) diff -puN fs/nfsd/nfs4state.c~nfsd4-could-leak-a-stateid-in-an-error-path fs/nfsd/nfs4state.c --- 25/fs/nfsd/nfs4state.c~nfsd4-could-leak-a-stateid-in-an-error-path 2004-09-02 20:28:57.416963512 -0700 +++ 25-akpm/fs/nfsd/nfs4state.c 2004-09-02 20:28:57.422962600 -0700 @@ -2153,8 +2153,10 @@ nfsd4_lock(struct svc_rqst *rqstp, struc if (!(lock->lk_stateowner = alloc_init_lock_stateowner(strhashval, open_sop->so_client, open_stp, lock))) goto out; if ((lock_stp = alloc_init_lock_stateid(lock->lk_stateowner, - fp, open_stp)) == NULL) + fp, open_stp)) == NULL) { + release_stateowner(lock->lk_stateowner); goto out; + } /* bump the open seqid used to create the lock */ open_sop->so_seqid++; } else { _