Print this page
Code review comments from jeffpc
7029 want per-process exploit mitigation features (secflags)
7030 want basic address space layout randomization (aslr)
7031 noexec_user_stack should be a secflag
7032 want a means to forbid mappings around NULL.


 360 
 361 static const sl_prfdinfo_layout_t prfdinfo_layout = {
 362         { 0,    1088,   0,      0 },            /* sizeof (prfdinfo_t) */
 363         { 0,    4,      0,      0 },            /* pr_fd */
 364         { 4,    4,      0,      0 },            /* pr_mode */
 365         { 8,    4,      0,      0 },            /* pr_uid */
 366         { 12,   4,      0,      0 },            /* pr_gid */
 367         { 16,   4,      0,      0 },            /* pr_major */
 368         { 20,   4,      0,      0 },            /* pr_minor */
 369         { 24,   4,      0,      0 },            /* pr_rmajor */
 370         { 28,   4,      0,      0 },            /* pr_rminor */
 371         { 32,   8,      0,      0 },            /* pr_ino */
 372         { 40,   8,      0,      0 },            /* pr_offset */
 373         { 48,   8,      0,      0 },            /* pr_size */
 374         { 56,   4,      0,      0 },            /* pr_fileflags */
 375         { 60,   4,      0,      0 },            /* pr_fdflags */
 376         { 64,   1,      1024,   0 },            /* pr_path[] */
 377 };
 378 
 379 










 380 
 381 
 382 static const sl_arch_layout_t layout_i386 = {
 383         &auxv_layout,
 384         &fltset_layout,
 385         &lwpsinfo_layout,
 386         &lwpstatus_layout,
 387         &prcred_layout,
 388         &priv_impl_info_layout,
 389         &prpriv_layout,
 390         &psinfo_layout,
 391         &pstatus_layout,
 392         &prgregset_layout,
 393         &prpsinfo_layout,
 394         &prstatus_layout,
 395         &sigaction_layout,
 396         &siginfo_layout,
 397         &sigset_layout,
 398         &stack_layout,
 399         &sysset_layout,
 400         &timestruc_layout,
 401         &utsname_layout,
 402         &prfdinfo_layout,

 403 };
 404 
 405 
 406 const sl_arch_layout_t *
 407 struct_layout_i386(void)
 408 {
 409         return (&layout_i386);
 410 }


 360 
 361 static const sl_prfdinfo_layout_t prfdinfo_layout = {
 362         { 0,    1088,   0,      0 },            /* sizeof (prfdinfo_t) */
 363         { 0,    4,      0,      0 },            /* pr_fd */
 364         { 4,    4,      0,      0 },            /* pr_mode */
 365         { 8,    4,      0,      0 },            /* pr_uid */
 366         { 12,   4,      0,      0 },            /* pr_gid */
 367         { 16,   4,      0,      0 },            /* pr_major */
 368         { 20,   4,      0,      0 },            /* pr_minor */
 369         { 24,   4,      0,      0 },            /* pr_rmajor */
 370         { 28,   4,      0,      0 },            /* pr_rminor */
 371         { 32,   8,      0,      0 },            /* pr_ino */
 372         { 40,   8,      0,      0 },            /* pr_offset */
 373         { 48,   8,      0,      0 },            /* pr_size */
 374         { 56,   4,      0,      0 },            /* pr_fileflags */
 375         { 60,   4,      0,      0 },            /* pr_fdflags */
 376         { 64,   1,      1024,   0 },            /* pr_path[] */
 377 };
 378 
 379 
 380 static const sl_prsecflags_layout_t prsecflags_layout = {
 381         { 0,    40,     0,      0 },            /* sizeof (prsecflags_t) */
 382         { 0,    4,      0,      0 },            /* pr_version */
 383         { 8,    8,      0,      0 },            /* pr_effective */
 384         { 16,   8,      0,      0 },            /* pr_inherit */
 385         { 24,   8,      0,      0 },            /* pr_lower */
 386         { 32,   8,      0,      0 },            /* pr_upper */
 387 };
 388 
 389 
 390 
 391 
 392 static const sl_arch_layout_t layout_i386 = {
 393         &auxv_layout,
 394         &fltset_layout,
 395         &lwpsinfo_layout,
 396         &lwpstatus_layout,
 397         &prcred_layout,
 398         &priv_impl_info_layout,
 399         &prpriv_layout,
 400         &psinfo_layout,
 401         &pstatus_layout,
 402         &prgregset_layout,
 403         &prpsinfo_layout,
 404         &prstatus_layout,
 405         &sigaction_layout,
 406         &siginfo_layout,
 407         &sigset_layout,
 408         &stack_layout,
 409         &sysset_layout,
 410         &timestruc_layout,
 411         &utsname_layout,
 412         &prfdinfo_layout,
 413         &prsecflags_layout,
 414 };
 415 
 416 
 417 const sl_arch_layout_t *
 418 struct_layout_i386(void)
 419 {
 420         return (&layout_i386);
 421 }