Showing the changes to scripts (1 of 52 files). Show all
Unified · Split
| @@ -43,6 +43,8 @@ int main(int argc, char *argv[]) · 42 unmodified lines | ||
| 43 | 43 | int i, j, k; |
| 44 | 44 | int isids_len; |
| 45 | 45 | FILE *fout; |
| 46 | + const char *needle = "SOCKET"; | |
| 47 | + char *substr; | |
| 46 | 48 | |
| 47 | 49 | progname = argv[0]; |
| 48 | 50 | |
| @@ -88,6 +90,24 @@ int main(int argc, char *argv[]) · 39 unmodified lines | ||
| 88 | 90 | fprintf(fout, "%2d\n", i); |
| 89 | 91 | } |
| 90 | 92 | 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 | + | |
| 91 | 111 | fprintf(fout, "\n#endif\n"); |
| 92 | 112 | fclose(fout); |
| 93 | 113 | |