Subject: Max process data size must be signed integer?
To: None <tech-kern@netbsd.org>
From: Florian Stoehr <netbsd@wolfnode.de>
List: tech-kern
Date: 11/11/2005 00:41:30
Hi,

on i386, setting kernel options MAXDSIZ and DFLDSIZ to >= 2**31
results in an error in sys/kern/exec_elf32.c (on 2-1-RELEASE)
in line 427:

 		/*
 		 * Now compute the size and load address.
 		 */
HERE->>>   addr = VM_DEFAULT_ADDRESS(epp->ep_daddr,
 		    round_page(limit) - trunc_page(base_ph->p_vaddr));
 	} else
 		addr = *last; /* may be ELF_LINK_ADDR */

it claims that the value may not be an unsigned integer.

-> Is this the desired behaviour or a bug? If desired, what to
do with a negative process data segment size (wondering)?

I haven's tested what is the result on a 64-bit platform yet,
I'll try on my sparc64 soon.

Thanks
-Florian