<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">---

 25-akpm/ipc/shm.c |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff -puN ipc/shm.c~shm-do_munmap-check ipc/shm.c
--- 25/ipc/shm.c~shm-do_munmap-check	2004-04-27 20:37:44.112233792 -0700
+++ 25-akpm/ipc/shm.c	2004-04-27 20:37:44.116233184 -0700
@@ -796,10 +796,12 @@ asmlinkage long sys_shmdt(char __user *s
 		 */
 		if ((vma-&gt;vm_ops == &amp;shm_vm_ops || is_vm_hugetlb_page(vma)) &amp;&amp;
 			(vma-&gt;vm_start - addr)/PAGE_SIZE == vma-&gt;vm_pgoff) {
-
+			int ret;
 
 			size = vma-&gt;vm_file-&gt;f_dentry-&gt;d_inode-&gt;i_size;
-			do_munmap(mm, vma-&gt;vm_start, vma-&gt;vm_end - vma-&gt;vm_start);
+			ret = do_munmap(mm, vma-&gt;vm_start,
+					vma-&gt;vm_end - vma-&gt;vm_start);
+			WARN_ON(ret);
 			/*
 			 * We discovered the size of the shm segment, so
 			 * break out of here and fall through to the next
@@ -823,9 +825,13 @@ asmlinkage long sys_shmdt(char __user *s
 
 		/* finding a matching vma now does not alter retval */
 		if ((vma-&gt;vm_ops == &amp;shm_vm_ops || is_vm_hugetlb_page(vma)) &amp;&amp;
-			(vma-&gt;vm_start - addr)/PAGE_SIZE == vma-&gt;vm_pgoff)
+			(vma-&gt;vm_start - addr)/PAGE_SIZE == vma-&gt;vm_pgoff) {
+			int ret;
 
-			do_munmap(mm, vma-&gt;vm_start, vma-&gt;vm_end - vma-&gt;vm_start);
+			ret = do_munmap(mm, vma-&gt;vm_start,
+					vma-&gt;vm_end - vma-&gt;vm_start);
+			WARN_ON(ret);
+		}
 		vma = next;
 	}
 

_
</pre></body></html>