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

Subversion リポジトリの参照

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

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

revision 3935 by kumaneko, Wed Sep 1 14:07:02 2010 UTC revision 4049 by kumaneko, Thu Oct 7 07:14:01 2010 UTC
# Line 3  Line 3 
3   *   *
4   * Copyright (C) 2005-2010  NTT DATA CORPORATION   * Copyright (C) 2005-2010  NTT DATA CORPORATION
5   *   *
6   * Version: 1.8.0-pre   2010/09/01   * Version: 1.8.0-pre   2010/10/05
7   *   *
8   * 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.
9   * See README.ccs for ChangeLog.   * See README.ccs for ChangeLog.
# Line 104  int ccs_write_group(char *data, const bo Line 104  int ccs_write_group(char *data, const bo
104                  }                  }
105                  error = ccs_update_policy(&e.head, sizeof(e), is_delete,                  error = ccs_update_policy(&e.head, sizeof(e), is_delete,
106                                            member, ccs_same_address_group);                                            member, ccs_same_address_group);
107   out_address:  out_address:
108                  if (e.is_ipv6) {                  if (e.is_ipv6) {
109                          ccs_put_ipv6_address(e.min.ipv6);                          ccs_put_ipv6_address(e.min.ipv6);
110                          ccs_put_ipv6_address(e.max.ipv6);                          ccs_put_ipv6_address(e.max.ipv6);
111                  }                  }
112          }          }
113   out:  out:
114          ccs_put_group(group);          ccs_put_group(group);
115          return error;          return error;
116  }  }
# Line 131  ccs_path_matches_group(const struct ccs_ Line 131  ccs_path_matches_group(const struct ccs_
131                         const struct ccs_group *group)                         const struct ccs_group *group)
132  {  {
133          struct ccs_path_group *member;          struct ccs_path_group *member;
134          list_for_each_entry_rcu(member, &group->member_list, head.list) {          list_for_each_entry_srcu(member, &group->member_list, head.list,
135                                     &ccs_ss) {
136                  if (member->head.is_deleted)                  if (member->head.is_deleted)
137                          continue;                          continue;
138                  if (!ccs_path_matches_pattern(pathname, member->member_name))                  if (!ccs_path_matches_pattern(pathname, member->member_name))
# Line 157  bool ccs_number_matches_group(const unsi Line 158  bool ccs_number_matches_group(const unsi
158  {  {
159          struct ccs_number_group *member;          struct ccs_number_group *member;
160          bool matched = false;          bool matched = false;
161          list_for_each_entry_rcu(member, &group->member_list, head.list) {          list_for_each_entry_srcu(member, &group->member_list, head.list,
162                                     &ccs_ss) {
163                  if (member->head.is_deleted)                  if (member->head.is_deleted)
164                          continue;                          continue;
165                  if (min > member->number.values[1] ||                  if (min > member->number.values[1] ||
# Line 186  bool ccs_address_matches_group(const boo Line 188  bool ccs_address_matches_group(const boo
188          struct ccs_address_group *member;          struct ccs_address_group *member;
189          const u32 ip = ntohl(*address);          const u32 ip = ntohl(*address);
190          bool matched = false;          bool matched = false;
191          list_for_each_entry_rcu(member, &group->member_list, head.list) {          list_for_each_entry_srcu(member, &group->member_list, head.list,
192                                     &ccs_ss) {
193                  if (member->head.is_deleted)                  if (member->head.is_deleted)
194                          continue;                          continue;
195                  if (member->is_ipv6) {                  if (member->is_ipv6) {

Legend:
Removed from v.3935  
changed lines
  Added in v.4049

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