History

Merge branch 'master' of git://git.infradead.org/users/eparis/selinux into next

James Morris committed 15 years ago

Commit fe3fa432 parents ee009e4 026eb1652 files · +594 −323Browse files

Showing the changes to scripts (1 of 52 files). Show all

Unified · Split

scripts/selinux/genheaders/genheaders.c+20−0
@@ -43,6 +43,8 @@ int main(int argc, char *argv[]) · 42 unmodified lines
4343 int i, j, k;
4444 int isids_len;
4545 FILE *fout;
46+ const char *needle = "SOCKET";
47+ char *substr;
4648
4749 progname = argv[0];
4850
@@ -88,6 +90,24 @@ int main(int argc, char *argv[]) · 39 unmodified lines
8890 fprintf(fout, "%2d\n", i);
8991 }
9092 fprintf(fout, "\n#define SECINITSID_NUM %d\n", i-1);
93+ fprintf(fout, "\nstatic inline bool security_is_socket_class(u16 kern_tclass)\n");
94+ fprintf(fout, "{\n");
95+ fprintf(fout, "\tbool sock = false;\n\n");
96+ fprintf(fout, "\tswitch (kern_tclass) {\n");
97+ for (i = 0; secclass_map[i].name; i++) {
98+ struct security_class_mapping *map = &secclass_map[i];
99+ substr = strstr(map->name, needle);
100+ if (substr && strcmp(substr, needle) == 0)
101+ fprintf(fout, "\tcase SECCLASS_%s:\n", map->name);
102+ }
103+ fprintf(fout, "\t\tsock = true;\n");
104+ fprintf(fout, "\t\tbreak;\n");
105+ fprintf(fout, "\tdefault:\n");
106+ fprintf(fout, "\t\tbreak;\n");
107+ fprintf(fout, "\t}\n\n");
108+ fprintf(fout, "\treturn sock;\n");
109+ fprintf(fout, "}\n");
110+
91111 fprintf(fout, "\n#endif\n");
92112 fclose(fout);
93113