diff -urN 2.4.0-test4-pre6/fs/exec.c vm-25/fs/exec.c --- 2.4.0-test4-pre6/fs/exec.c Tue Jul 11 03:50:33 2000 +++ vm-25/fs/exec.c Fri Jul 14 18:42:03 2000 @@ -323,6 +324,7 @@ if (bprm->page[i]) { current->mm->rss++; put_dirty_page(current,bprm->page[i],stack_base); + bprm->page[i] = NULL; } stack_base += PAGE_SIZE; } @@ -875,9 +877,11 @@ /* Assumes that free_page() can take a NULL argument. */ /* I hope this is ok for all architectures */ - for (i = 0 ; i < MAX_ARG_PAGES ; i++) - if (bprm.page[i]) - __free_page(bprm.page[i]); + for (i = 0 ; i < MAX_ARG_PAGES ; i++) { + struct page * page = bprm.page[i]; + if (page) + __free_page(page); + } return retval; }