オープンソース・ソフトウェアの開発とダウンロード

Subversion リポジトリの参照

Diff of /branches/ccs-patch/security/ccsecurity/policy_io.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2871 by kumaneko, Sat Aug 8 08:03:30 2009 UTC revision 2888 by kumaneko, Mon Aug 10 07:31:29 2009 UTC
# Line 636  static int ccs_write_domain_policy(struc Line 636  static int ccs_write_domain_policy(struc
636          return error;          return error;
637  }  }
638    
639  static bool ccs_print_name_union(struct ccs_io_buffer *head, bool is_group,  static bool ccs_print_name_union(struct ccs_io_buffer *head,
640                                   union ccs_name_union *group)                                   struct ccs_name_union *ptr)
641  {  {
642          const int pos = head->read_avail;          const int pos = head->read_avail;
643          if (pos && head->read_buf[pos - 1] == ' ')          if (pos && head->read_buf[pos - 1] == ' ')
644                  head->read_avail--;                  head->read_avail--;
645          if (is_group)          if (ptr->is_group)
646                  return ccs_io_printf(head, " @%s",                  return ccs_io_printf(head, " @%s",
647                                       group->group->group_name->name);                                       ptr->group->group_name->name);
648          return ccs_io_printf(head, " %s", group->filename->name);          return ccs_io_printf(head, " %s", ptr->filename->name);
649  }  }
650    
651  static bool ccs_print_number_union(struct ccs_io_buffer *head, bool is_group,  static bool ccs_print_number_union(struct ccs_io_buffer *head,
652                                     union ccs_number_union *group)                                     struct ccs_number_union *ptr)
653  {  {
654          unsigned int min;          unsigned long min;
655          unsigned int max;          unsigned long max;
656          if (is_group)          if (ptr->is_group)
657                  return ccs_io_printf(head, " @%s",                  return ccs_io_printf(head, " @%s",
658                                       group->group->group_name->name);                                       ptr->group->group_name->name);
659          min = group->value.min;          min = ptr->values[0];
660          max = group->value.max;          max = ptr->values[1];
661          if (min == max)          if (min == max)
662                  return ccs_io_printf(head, " %u", min);                  return ccs_io_printf(head, " %lu", min);
663          return ccs_io_printf(head, " %u-%u", min, max);          return ccs_io_printf(head, " %lu-%lu", min, max);
664  }  }
665    
666  /**  /**
# Line 692  static bool ccs_print_single_path_acl(st Line 692  static bool ccs_print_single_path_acl(st
692                  msg = ccs_sp2keyword(bit);                  msg = ccs_sp2keyword(bit);
693                  pos = head->read_avail;                  pos = head->read_avail;
694                  if (!ccs_io_printf(head, "allow_%s", msg) ||                  if (!ccs_io_printf(head, "allow_%s", msg) ||
695                      !ccs_print_name_union(head, ptr->name_is_group,                      !ccs_print_name_union(head, &ptr->name) ||
                                           &ptr->name) ||  
696                      !ccs_print_condition(head, cond))                      !ccs_print_condition(head, cond))
697                          goto out;                          goto out;
698          }          }
# Line 728  static bool ccs_print_mkdev_acl(struct c Line 727  static bool ccs_print_mkdev_acl(struct c
727                  msg = ccs_mkdev2keyword(bit);                  msg = ccs_mkdev2keyword(bit);
728                  pos = head->read_avail;                  pos = head->read_avail;
729                  if (!ccs_io_printf(head, "allow_%s", msg) ||                  if (!ccs_io_printf(head, "allow_%s", msg) ||
730                      !ccs_print_name_union(head, ptr->name_is_group,                      !ccs_print_name_union(head, &ptr->name) ||
731                                            &ptr->name) ||                      !ccs_print_number_union(head, &ptr->major) ||
732                      !ccs_print_number_union(head, ptr->major_is_group,                      !ccs_print_number_union(head, &ptr->minor) ||
                                             &ptr->major) ||  
                     !ccs_print_number_union(head, ptr->minor_is_group,  
                                             &ptr->minor) ||  
733                      !ccs_print_condition(head, cond))                      !ccs_print_condition(head, cond))
734                          goto out;                          goto out;
735          }          }
# Line 768  static bool ccs_print_double_path_acl(st Line 764  static bool ccs_print_double_path_acl(st
764                  msg = ccs_dp2keyword(bit);                  msg = ccs_dp2keyword(bit);
765                  pos = head->read_avail;                  pos = head->read_avail;
766                  if (!ccs_io_printf(head, "allow_%s", msg) ||                  if (!ccs_io_printf(head, "allow_%s", msg) ||
767                      !ccs_print_name_union(head, ptr->name1_is_group,                      !ccs_print_name_union(head, &ptr->name1) ||
768                                            &ptr->name1) ||                      !ccs_print_name_union(head, &ptr->name2) ||
                     !ccs_print_name_union(head, ptr->name2_is_group,  
                                           &ptr->name2) ||  
769                      !ccs_print_condition(head, cond))                      !ccs_print_condition(head, cond))
770                          goto out;                          goto out;
771          }          }
# Line 806  static bool ccs_print_path_number_acl(st Line 800  static bool ccs_print_path_number_acl(st
800                  msg = ccs_path_number2keyword(bit);                  msg = ccs_path_number2keyword(bit);
801                  pos = head->read_avail;                  pos = head->read_avail;
802                  if (!ccs_io_printf(head, "allow_%s", msg) ||                  if (!ccs_io_printf(head, "allow_%s", msg) ||
803                      !ccs_print_name_union(head, ptr->name_is_group,                      !ccs_print_name_union(head, &ptr->name) ||
804                                            &ptr->name) ||                      !ccs_print_number_union(head, &ptr->number) ||
                     !ccs_print_number_union(head, ptr->number_is_group,  
                                             &ptr->number) ||  
805                      !ccs_print_condition(head, cond))                      !ccs_print_condition(head, cond))
806                          goto out;                          goto out;
807          }          }
# Line 973  static bool ccs_print_network_acl(struct Line 965  static bool ccs_print_network_acl(struct
965                          goto out;                          goto out;
966                  break;                  break;
967          }          }
968          if (!ccs_print_number_union(head, ptr->port_is_group, &ptr->port) ||          if (!ccs_print_number_union(head, &ptr->port) ||
969              !ccs_print_condition(head, cond))              !ccs_print_condition(head, cond))
970                  goto out;                  goto out;
971          return true;          return true;

Legend:
Removed from v.2871  
changed lines
  Added in v.2888

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26