Lines Matching full:limits

368 	nvlist_t *limits, *nvl;
371 if (cap_limit_get(chan, &limits) < 0)
373 if (limits == NULL) {
374 limits = nvlist_create(0);
376 if (nvlist_exists_nvlist(limits, "cmds"))
377 nvlist_free_nvlist(limits, "cmds");
382 nvlist_move_nvlist(limits, "cmds", nvl);
383 return (cap_limit_set(chan, limits));
390 nvlist_t *limits, *nvl;
393 if (cap_limit_get(chan, &limits) < 0)
395 if (limits == NULL) {
396 limits = nvlist_create(0);
398 if (nvlist_exists_nvlist(limits, "fields"))
399 nvlist_free_nvlist(limits, "fields");
404 nvlist_move_nvlist(limits, "fields", nvl);
405 return (cap_limit_set(chan, limits));
412 nvlist_t *limits, *groups;
417 if (cap_limit_get(chan, &limits) < 0)
419 if (limits == NULL) {
420 limits = nvlist_create(0);
422 if (nvlist_exists_nvlist(limits, "groups"))
423 nvlist_free_nvlist(limits, "groups");
436 nvlist_move_nvlist(limits, "groups", groups);
437 return (cap_limit_set(chan, limits));
444 grp_allowed_cmd(const nvlist_t *limits, const char *cmd)
447 if (limits == NULL)
454 if (!nvlist_exists_nvlist(limits, "cmds"))
457 limits = nvlist_get_nvlist(limits, "cmds");
458 return (nvlist_exists_null(limits, cmd));
480 grp_allowed_group(const nvlist_t *limits, const char *gname, gid_t gid)
486 if (limits == NULL)
492 if (!nvlist_exists_nvlist(limits, "groups"))
495 limits = nvlist_get_nvlist(limits, "groups");
497 while ((name = nvlist_next(limits, &type, &cookie)) != NULL) {
501 nvlist_get_number(limits, name) == (uint64_t)gid) {
507 strcmp(nvlist_get_string(limits, name),
550 grp_allowed_field(const nvlist_t *limits, const char *field)
553 if (limits == NULL)
559 if (!nvlist_exists_nvlist(limits, "fields"))
562 limits = nvlist_get_nvlist(limits, "fields");
563 return (nvlist_exists_null(limits, field));
585 grp_pack(const nvlist_t *limits, const struct group *grp, nvlist_t *nvl)
596 if (!grp_allowed_group(limits, grp->gr_name, grp->gr_gid))
599 if (grp_allowed_field(limits, "gr_name"))
603 if (grp_allowed_field(limits, "gr_passwd"))
607 if (grp_allowed_field(limits, "gr_gid"))
611 if (grp_allowed_field(limits, "gr_mem") && grp->gr_mem[0] != NULL) {
627 grp_getgrent(const nvlist_t *limits, const nvlist_t *nvlin __unused,
637 if (grp_pack(limits, grp, nvlout))
645 grp_getgrnam(const nvlist_t *limits, const nvlist_t *nvlin, nvlist_t *nvlout)
660 (void)grp_pack(limits, grp, nvlout);
666 grp_getgrgid(const nvlist_t *limits, const nvlist_t *nvlin, nvlist_t *nvlout)
681 (void)grp_pack(limits, grp, nvlout);
687 grp_setgroupent(const nvlist_t *limits __unused, const nvlist_t *nvlin,
701 grp_setgrent(const nvlist_t *limits __unused, const nvlist_t *nvlin __unused,
711 grp_endgrent(const nvlist_t *limits __unused, const nvlist_t *nvlin __unused,
723 const nvlist_t *limits;
745 limits = nvlist_get_nvlist(newlimits, name);
747 error = grp_allowed_cmds(oldlimits, limits);
749 error = grp_allowed_fields(oldlimits, limits);
751 error = grp_allowed_groups(oldlimits, limits);
762 grp_command(const char *cmd, const nvlist_t *limits, nvlist_t *nvlin,
767 if (!grp_allowed_cmd(limits, cmd))
771 error = grp_getgrent(limits, nvlin, nvlout);
773 error = grp_getgrnam(limits, nvlin, nvlout);
775 error = grp_getgrgid(limits, nvlin, nvlout);
777 error = grp_setgroupent(limits, nvlin, nvlout);
779 error = grp_setgrent(limits, nvlin, nvlout);
781 error = grp_endgrent(limits, nvlin, nvlout);