Author: emaste
Date: Wed Jun  3 18:33:47 2015
New Revision: 283960
URL: https://svnweb.freebsd.org/changeset/base/283960

Log:
  MFC r259438 by pjd: Fix syscalls that can be loaded as kernel modules
  
    They were not given the flag allowing to call them from capability
    mode sandbox.
  
  And regenerate init_sysent.c
  
  Sponsored by: The FreeBSD Foundation

Modified:
  stable/10/sys/kern/init_sysent.c
  stable/10/sys/kern/makesyscalls.sh
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/kern/init_sysent.c
==============================================================================
--- stable/10/sys/kern/init_sysent.c    Wed Jun  3 18:01:09 2015        
(r283959)
+++ stable/10/sys/kern/init_sysent.c    Wed Jun  3 18:33:47 2015        
(r283960)
@@ -289,9 +289,9 @@ struct sysent sysent[] = {
        { AS(openbsd_poll_args), (sy_call_t *)sys_openbsd_poll, AUE_POLL, NULL, 
0, 0, SYF_CAPENABLED, SY_THR_STATIC },  /* 252 = openbsd_poll */
        { 0, (sy_call_t *)sys_issetugid, AUE_ISSETUGID, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_STATIC },    /* 253 = issetugid */
        { AS(lchown_args), (sy_call_t *)sys_lchown, AUE_LCHOWN, NULL, 0, 0, 0, 
SY_THR_STATIC }, /* 254 = lchown */
-       { AS(aio_read_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, 
SY_THR_ABSENT },  /* 255 = aio_read */
-       { AS(aio_write_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, 
SY_THR_ABSENT }, /* 256 = aio_write */
-       { AS(lio_listio_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, 
SY_THR_ABSENT },        /* 257 = lio_listio */
+       { AS(aio_read_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_ABSENT },     /* 255 = aio_read */
+       { AS(aio_write_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_ABSENT },    /* 256 = aio_write */
+       { AS(lio_listio_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_ABSENT },   /* 257 = lio_listio */
        { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },      
                /* 258 = nosys */
        { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },      
                /* 259 = nosys */
        { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },      
                /* 260 = nosys */
@@ -348,13 +348,13 @@ struct sysent sysent[] = {
        { AS(setresuid_args), (sy_call_t *)sys_setresuid, AUE_SETRESUID, NULL, 
0, 0, SYF_CAPENABLED, SY_THR_STATIC },   /* 311 = setresuid */
        { AS(setresgid_args), (sy_call_t *)sys_setresgid, AUE_SETRESGID, NULL, 
0, 0, SYF_CAPENABLED, SY_THR_STATIC },   /* 312 = setresgid */
        { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },      
                /* 313 = obsolete signanosleep */
-       { AS(aio_return_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, 
SY_THR_ABSENT },        /* 314 = aio_return */
-       { AS(aio_suspend_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 
0, SY_THR_ABSENT },       /* 315 = aio_suspend */
-       { AS(aio_cancel_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, 
SY_THR_ABSENT },        /* 316 = aio_cancel */
-       { AS(aio_error_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, 
SY_THR_ABSENT }, /* 317 = aio_error */
-       { AS(oaio_read_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, 
SY_THR_ABSENT }, /* 318 = oaio_read */
-       { AS(oaio_write_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, 
SY_THR_ABSENT },        /* 319 = oaio_write */
-       { AS(olio_listio_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 
0, SY_THR_ABSENT },       /* 320 = olio_listio */
+       { AS(aio_return_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_ABSENT },   /* 314 = aio_return */
+       { AS(aio_suspend_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_ABSENT },  /* 315 = aio_suspend */
+       { AS(aio_cancel_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_ABSENT },   /* 316 = aio_cancel */
+       { AS(aio_error_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_ABSENT },    /* 317 = aio_error */
+       { AS(oaio_read_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_ABSENT },    /* 318 = oaio_read */
+       { AS(oaio_write_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_ABSENT },   /* 319 = oaio_write */
+       { AS(olio_listio_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_ABSENT },  /* 320 = olio_listio */
        { 0, (sy_call_t *)sys_yield, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, 
SY_THR_STATIC },     /* 321 = yield */
        { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },      
                /* 322 = obsolete thr_sleep */
        { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },      
                /* 323 = obsolete thr_wakeup */
@@ -393,7 +393,7 @@ struct sysent sysent[] = {
        { AS(extattr_set_file_args), (sy_call_t *)sys_extattr_set_file, 
AUE_EXTATTR_SET_FILE, NULL, 0, 0, 0, SY_THR_STATIC },   /* 356 = 
extattr_set_file */
        { AS(extattr_get_file_args), (sy_call_t *)sys_extattr_get_file, 
AUE_EXTATTR_GET_FILE, NULL, 0, 0, 0, SY_THR_STATIC },   /* 357 = 
extattr_get_file */
        { AS(extattr_delete_file_args), (sy_call_t *)sys_extattr_delete_file, 
AUE_EXTATTR_DELETE_FILE, NULL, 0, 0, 0, SY_THR_STATIC },  /* 358 = 
extattr_delete_file */
-       { AS(aio_waitcomplete_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 
0, 0, SY_THR_ABSENT },  /* 359 = aio_waitcomplete */
+       { AS(aio_waitcomplete_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 
0, SYF_CAPENABLED, SY_THR_ABSENT },     /* 359 = aio_waitcomplete */
        { AS(getresuid_args), (sy_call_t *)sys_getresuid, AUE_GETRESUID, NULL, 
0, 0, SYF_CAPENABLED, SY_THR_STATIC },   /* 360 = getresuid */
        { AS(getresgid_args), (sy_call_t *)sys_getresgid, AUE_GETRESGID, NULL, 
0, 0, SYF_CAPENABLED, SY_THR_STATIC },   /* 361 = getresgid */
        { 0, (sy_call_t *)sys_kqueue, AUE_KQUEUE, NULL, 0, 0, SYF_CAPENABLED, 
SY_THR_STATIC },  /* 362 = kqueue */
@@ -492,14 +492,14 @@ struct sysent sysent[] = {
        { AS(thr_new_args), (sy_call_t *)sys_thr_new, AUE_NULL, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_STATIC },    /* 455 = thr_new */
        { AS(sigqueue_args), (sy_call_t *)sys_sigqueue, AUE_NULL, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_STATIC },  /* 456 = sigqueue */
        { AS(kmq_open_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, 
SY_THR_ABSENT },  /* 457 = kmq_open */
-       { AS(kmq_setattr_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 
0, SY_THR_ABSENT },       /* 458 = kmq_setattr */
-       { AS(kmq_timedreceive_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 
0, 0, SY_THR_ABSENT },  /* 459 = kmq_timedreceive */
-       { AS(kmq_timedsend_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 
0, SY_THR_ABSENT },     /* 460 = kmq_timedsend */
-       { AS(kmq_notify_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, 
SY_THR_ABSENT },        /* 461 = kmq_notify */
+       { AS(kmq_setattr_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_ABSENT },  /* 458 = kmq_setattr */
+       { AS(kmq_timedreceive_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 
0, SYF_CAPENABLED, SY_THR_ABSENT },     /* 459 = kmq_timedreceive */
+       { AS(kmq_timedsend_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_ABSENT },        /* 460 = kmq_timedsend */
+       { AS(kmq_notify_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_ABSENT },   /* 461 = kmq_notify */
        { AS(kmq_unlink_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, 
SY_THR_ABSENT },        /* 462 = kmq_unlink */
        { AS(abort2_args), (sy_call_t *)sys_abort2, AUE_NULL, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_STATIC },      /* 463 = abort2 */
        { AS(thr_set_name_args), (sy_call_t *)sys_thr_set_name, AUE_NULL, NULL, 
0, 0, SYF_CAPENABLED, SY_THR_STATIC },  /* 464 = thr_set_name */
-       { AS(aio_fsync_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, 
SY_THR_ABSENT }, /* 465 = aio_fsync */
+       { AS(aio_fsync_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 
SYF_CAPENABLED, SY_THR_ABSENT },    /* 465 = aio_fsync */
        { AS(rtprio_thread_args), (sy_call_t *)sys_rtprio_thread, AUE_RTPRIO, 
NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC },      /* 466 = rtprio_thread */
        { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },      
                /* 467 = nosys */
        { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },      
                /* 468 = nosys */

Modified: stable/10/sys/kern/makesyscalls.sh
==============================================================================
--- stable/10/sys/kern/makesyscalls.sh  Wed Jun  3 18:01:09 2015        
(r283959)
+++ stable/10/sys/kern/makesyscalls.sh  Wed Jun  3 18:33:47 2015        
(r283960)
@@ -459,7 +459,7 @@ s/\$//g
                printf("\t{ %s, (sy_call_t *)", argssize) > sysent
                column = 8 + 2 + length(argssize) + 15
                if (flag("NOSTD")) {
-                       printf("%s },", "lkmressys, AUE_NULL, NULL, 0, 0, 0, 
SY_THR_ABSENT") > sysent
+                       printf("lkmressys, AUE_NULL, NULL, 0, 0, %s, 
SY_THR_ABSENT },", flags) > sysent
                        column = column + length("lkmressys") + 
length("AUE_NULL") + 3
                } else {
                        if (funcname == "nosys" || funcname == "sysarch" || 
_______________________________________________
svn-src-stable-10@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-stable-10
To unsubscribe, send any mail to "svn-src-stable-10-unsubscr...@freebsd.org"

Reply via email to