⬢ DragonFlyBSD Kernel Audit
DF-3213 / fix.diff
← back to finding ↓ download raw
--- a/sys/vfs/nfs/nfs_srvcache.c
+++ b/sys/vfs/nfs/nfs_srvcache.c
@@ -250,6 +250,9 @@
 		rp->rc_flag |= RC_LOCKED;
 		LIST_REMOVE(rp, rc_hash);
 		TAILQ_REMOVE(&nfsrvlruhead, rp, rc_lru);
+		if (rp->rc_flag & RC_REPSTATUS) {
+			rp->rc_flag &= ~RC_REPSTATUS;
+		}
 		if (rp->rc_flag & RC_REPMBUF) {
 			m_freem(rp->rc_reply);
 			rp->rc_reply = NULL;
@@ -342,6 +345,9 @@
 						rp->rc_reply = NULL;
 						rp->rc_flag &= ~RC_REPMBUF;
 					}
+					if (rp->rc_flag & RC_REPSTATUS) {
+						rp->rc_flag &= ~RC_REPSTATUS;
+					}
 					rp->rc_reply = m_copym(repmbuf, 0,
 							M_COPYALL, M_WAITOK);
 					rp->rc_flag |= RC_REPMBUF;