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

Subversion リポジトリの参照

Diff of /trunk/1.8.x/ccs-patch/security/ccsecurity/domain.c

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

revision 898 by kumaneko, Tue Jan 15 04:44:35 2008 UTC revision 906 by kumaneko, Fri Jan 18 03:40:52 2008 UTC
# Line 5  Line 5 
5   *   *
6   * Copyright (C) 2005-2008  NTT DATA CORPORATION   * Copyright (C) 2005-2008  NTT DATA CORPORATION
7   *   *
8   * Version: 1.6.0-pre   2008/01/03   * Version: 1.6.0-pre   2008/01/18
9   *   *
10   * This file is applicable to both 2.4.30 and 2.6.11 and later.   * This file is applicable to both 2.4.30 and 2.6.11 and later.
11   * See README.ccs for ChangeLog.   * See README.ccs for ChangeLog.
# Line 97  const char *GetLastName(const struct dom Line 97  const char *GetLastName(const struct dom
97    
98  int AddDomainACL(struct domain_info *domain, struct acl_info *acl)  int AddDomainACL(struct domain_info *domain, struct acl_info *acl)
99  {  {
100          list1_add_tail_mb(&acl->list, &domain->acl_info_list);          if (domain) list1_add_tail_mb(&acl->list, &domain->acl_info_list);
101            else acl->type &= ~ACL_DELETED;
102          UpdateCounter(CCS_UPDATES_COUNTER_DOMAIN_POLICY);          UpdateCounter(CCS_UPDATES_COUNTER_DOMAIN_POLICY);
103          return 0;          return 0;
104  }  }
105    
106  int DelDomainACL(void)  int DelDomainACL(struct acl_info *acl)
107  {  {
108            if (acl) acl->type |= ACL_DELETED;
109          UpdateCounter(CCS_UPDATES_COUNTER_DOMAIN_POLICY);          UpdateCounter(CCS_UPDATES_COUNTER_DOMAIN_POLICY);
110          return 0;          return 0;
111  }  }
# Line 506  struct domain_info *FindOrAssignNewDomai Line 508  struct domain_info *FindOrAssignNewDomai
508                  printk("Reusing %p %s\n", domain, domain->domainname->name);                  printk("Reusing %p %s\n", domain, domain->domainname->name);
509  #endif  #endif
510                  list1_for_each_entry(ptr, &domain->acl_info_list, list) {                  list1_for_each_entry(ptr, &domain->acl_info_list, list) {
511                          switch (ptr->type) {                          ptr->type |= ACL_DELETED;
                         case TYPE_SINGLE_PATH_ACL:  
                                 container_of(ptr, struct single_path_acl_record, head)->perm = 0;  
                                 break;  
                         case TYPE_SINGLE_PATH_ACL_WITH_CONDITION:  
                                 container_of(ptr, struct single_path_acl_record_with_condition, record.head)->record.perm = 0;  
                                 break;  
                         case TYPE_DOUBLE_PATH_ACL:  
                                 container_of(ptr, struct double_path_acl_record, head)->perm = 0;  
                                 break;  
                         case TYPE_DOUBLE_PATH_ACL_WITH_CONDITION:  
                                 container_of(ptr, struct double_path_acl_record_with_condition, record.head)->record.perm = 0;  
                                 break;  
                         case TYPE_ARGV0_ACL:  
                                 container_of(ptr, struct argv0_acl_record, head)->is_deleted = 1;  
                                 break;  
                         case TYPE_ARGV0_ACL_WITH_CONDITION:  
                                 container_of(ptr, struct argv0_acl_record_with_condition, record.head)->record.is_deleted = 1;  
                                 break;  
                         case TYPE_ENV_ACL:  
                                 container_of(ptr, struct env_acl_record, head)->is_deleted = 1;  
                                 break;  
                         case TYPE_ENV_ACL_WITH_CONDITION:  
                                 container_of(ptr, struct env_acl_record_with_condition, record.head)->record.is_deleted = 1;  
                                 break;  
                         case TYPE_CAPABILITY_ACL:  
                                 container_of(ptr, struct capability_acl_record, head)->is_deleted = 1;  
                                 break;  
                         case TYPE_CAPABILITY_ACL_WITH_CONDITION:  
                                 container_of(ptr, struct capability_acl_record_with_condition, record.head)->record.is_deleted = 1;  
                                 break;  
                         case TYPE_IP_NETWORK_ACL:  
                                 container_of(ptr, struct ip_network_acl_record, head)->is_deleted = 1;  
                                 break;  
                         case TYPE_IP_NETWORK_ACL_WITH_CONDITION:  
                                 container_of(ptr, struct ip_network_acl_record_with_condition, record.head)->record.is_deleted = 1;  
                                 break;  
                         case TYPE_SIGNAL_ACL:  
                                 container_of(ptr, struct signal_acl_record, head)->is_deleted = 1;  
                                 break;  
                         case TYPE_SIGNAL_ACL_WITH_CONDITION:  
                                 container_of(ptr, struct signal_acl_record_with_condition, record.head)->record.is_deleted = 1;  
                                 break;  
                         }  
512                  }                  }
513                  domain->profile = profile;                  domain->profile = profile;
514                  domain->quota_warned = 0;                  domain->quota_warned = 0;

Legend:
Removed from v.898  
changed lines
  Added in v.906

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