fs/exec.c, remove_arg_zero maybe have a bug: if (offset == PAGE_SIZE) free_arg_page(bprm, (bprm->p >> PAGE_SHIFT) - 1); should be if (offset == PAGE_SIZE) free_arg_page(bprm, (bprm->p >> PAGE_SHIFT) - 1); else if (offset+1 == PAGESIZE && !kaddr[offset]) free_arg_page(bprm, (bprm->p >> PAGE_SHIFT));
fs/exec.c, remove_arg_zero maybe have a bug: if (offset == PAGE_SIZE) free_arg_page(bprm, (bprm->p >> PAGE_SHIFT) - 1); should be if (offset == PAGE_SIZE) free_arg_page(bprm, (bprm->p >> PAGE_SHIFT) - 1); else if (offset+1 == PAGESIZE) free_arg_page(bprm, (bprm->p >> PAGE_SHIFT));
Thanks, I queued a fix. "fs/exec.c: fix minor memory leak".