~sapidlib-dev-core/sapidlib/devel

« back to all changes in this revision

Viewing changes to lib/adm/obj/valid/valid.c

  • Committer: Richard Harrison
  • Date: 2012-04-26 02:09:41 UTC
  • Revision ID: harrison.rt@gmail.com-20120426020941-m5j561r37d3p8hum
Manual merge of work from RtH. Also cut down on the amount of call_out's in timezone.

Show diffs side-by-side

added added

removed removed

Lines of Context:
55
55
 
56
56
    if (sscanf(line, "(%s)%s", group, str) != 2)
57
57
    {
58
 
      message("warning", "[groups]: Invalid format of data in group data.\n");
59
 
      message("warning", "[groups]: Security alert: Ignoring group on line " + linenum + "\n");
 
58
      message("warning", "[groups]: Invalid format of data in group data.");
 
59
      message("warning", "[groups]: Security alert: Ignoring group on line " + linenum);
60
60
 
61
61
      continue;
62
62
    }
69
69
    {
70
70
      if (!file_size(user_data_file(member)) && !sscanf(member, "[%*s]"))
71
71
      {
72
 
        message("warning", "[groups]: Unknown user detected.\n");
 
72
        message("warning", "[groups]: Unknown user detected.");
73
73
        message(
74
74
          "warning",
75
 
          "[groups]: Security alert: User '" + member + "' ignored for group '" + group + "'.\n"
 
75
          "[groups]: Security alert: User '" + member + "' ignored for group '" + group + "'."
76
76
        );
77
77
        members -= ({ member });
78
78
 
105
105
 
106
106
    if (sscanf(line, "(%s)%s", directory, str) != 2)
107
107
    {
108
 
      message("error", "[access]: Invalid format of data in access data.\n");
 
108
      message("error", "[access]: Invalid format of data in access data.");
109
109
      error("Security alert: Fatal error parsing access data on line " + linenum + "\n");
110
110
    }
111
111
 
112
112
    if (str[<1] == ':')
113
113
    {
114
 
      message("error", "[access]: Incomplete data in access data (trailing ':').\n");
 
114
      message("error", "[access]: Incomplete data in access data (trailing ':').");
115
115
      error("Security alert: Fatal error parsing access data on line " + linenum + "\n");
116
116
    }
117
117
 
125
125
 
126
126
      if (sscanf(entry, "%s[%s]", identity, permissions) != 2)
127
127
      {
128
 
        message("error", "[access]: Invalid entry(" + entry + ") data format in access data.\n");
 
128
        message("error", "[access]: Invalid entry(" + entry + ") data format in access data.");
129
129
        error("Security alert: Fatal error parsing access data on line " + linenum + "\n");
130
130
      }
131
131
 
137
137
    Access += ([ directory: data ]);
138
138
    linenum++;
139
139
  }
140
 
 
141
 
  DEBUG(sprintf("Debug [access]: Access = %=O\n", Access));
142
140
}
143
141
 
144
142
string array parse(string str)
167
165
  mapping data;
168
166
  string array permissions;
169
167
 
170
 
  DEBUG(sprintf("Debug [access]: Access = %=O\n", Access));
171
168
  DEBUG(
172
169
    "Debug [security]: Permission query for '" + id + "' in '" + directory + "'.\n"
173
170
  );
191
188
 
192
189
      for (i = 0 ; i < sz_exp ; i ++)
193
190
        directory += exp[i] + "/";
194
 
 
195
 
      DEBUG(
196
 
        "Debug [security]: Permission query for '" + id + "' in '" + directory + "'.\n"
197
 
      );
198
191
    }
199
192
 
200
193
    if (!Access[directory]) directory = "/";
201
194
  }
202
195
 
203
 
  DEBUG(
204
 
    "Debug [security]: Permission query for '" + id + "' in '" + directory + "'.\n"
205
 
  );
206
 
 
207
196
  if (!Access[directory]) return 0;
208
197
  else data = Access[directory];
209
198