Files
linux/fs
Kinglong Mee f98bac5a30 NFSD: Fix crash encoding lock reply on 32-bit
Commit 8c7424cff6 "nfsd4: don't try to encode conflicting owner if low
on space" forgot to free conf->data in nfsd4_encode_lockt and before
sign conf->data to NULL in nfsd4_encode_lock_denied, causing a leak.

Worse, kfree() can be called on an uninitialized pointer in the case of
a succesful lock (or one that fails for a reason other than a conflict).

(Note that lock->lk_denied.ld_owner.data appears it should be zero here,
until you notice that it's one arm of a union the other arm of which is
written to in the succesful case by the

	memcpy(&lock->lk_resp_stateid, &lock_stp->st_stid.sc_stateid,
	                                sizeof(stateid_t));

in nfsd4_lock().  In the 32-bit case this overwrites ld_owner.data.)

Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
Fixes: 8c7424cff6 ""nfsd4: don't try to encode conflicting owner if low on space"
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2014-07-23 10:31:56 -04:00
..
2014-06-06 16:08:09 -07:00
2014-06-04 16:53:53 -07:00
2014-06-12 00:18:51 -04:00
2014-04-18 14:20:48 +02:00
2014-01-25 03:14:05 -05:00
2014-06-06 16:08:13 -07:00
2014-05-05 17:25:50 +10:00
2014-06-12 00:18:51 -04:00
2014-05-06 17:39:36 -04:00
2014-06-14 19:43:27 -05:00
2014-04-19 13:23:31 -07:00
2014-05-06 17:32:52 -04:00
2014-05-06 17:31:10 -04:00
2014-02-07 16:08:57 -08:00
2014-04-01 23:19:09 -04:00
2014-05-06 17:39:42 -04:00
2014-04-01 23:19:08 -04:00
2014-04-01 23:19:08 -04:00
2014-04-01 23:19:09 -04:00