Pull trivial vfs updates from Al Viro: "A few cleanups + Neil's namespace_unlock() optimization" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: exec: make prepare_bprm_creds static genheaders: %-<width>s had been there since v6; %-*s - since v7 VFS: use synchronize_rcu_expedited() in namespace_unlock() iov_iter: reduce code duplication
Showing the changes to scripts (1 of 5 files). Show all
Unified · Split
| @@ -19,8 +19,6 @@ struct security_class_mapping { · 18 unmodified lines | ||
| 19 | 19 | #include "classmap.h" |
| 20 | 20 | #include "initial_sid_to_string.h" |
| 21 | 21 | |
| 22 | −#define max(x, y) (((int)(x) > (int)(y)) ? x : y) | |
| 23 | − | |
| 24 | 22 | const char *progname; |
| 25 | 23 | |
| 26 | 24 | static void usage(void) |
| @@ -46,11 +44,9 @@ static char *stoupperx(const char *s) · 19 unmodified lines | ||
| 46 | 44 | |
| 47 | 45 | int main(int argc, char *argv[]) |
| 48 | 46 | { |
| 49 | − int i, j, k; | |
| 47 | + int i, j; | |
| 50 | 48 | int isids_len; |
| 51 | 49 | FILE *fout; |
| 52 | − const char *needle = "SOCKET"; | |
| 53 | − char *substr; | |
| 54 | 50 | |
| 55 | 51 | progname = argv[0]; |
| 56 | 52 | |
| @@ -80,20 +76,14 @@ int main(int argc, char *argv[]) · 23 unmodified lines | ||
| 80 | 76 | |
| 81 | 77 | for (i = 0; secclass_map[i].name; i++) { |
| 82 | 78 | struct security_class_mapping *map = &secclass_map[i]; |
| 83 | − fprintf(fout, "#define SECCLASS_%s", map->name); | |
| 84 | − for (j = 0; j < max(1, 40 - strlen(map->name)); j++) | |
| 85 | − fprintf(fout, " "); | |
| 86 | − fprintf(fout, "%2d\n", i+1); | |
| 79 | + fprintf(fout, "#define SECCLASS_%-39s %2d\n", map->name, i+1); | |
| 87 | 80 | } |
| 88 | 81 | |
| 89 | 82 | fprintf(fout, "\n"); |
| 90 | 83 | |
| 91 | 84 | for (i = 1; i < isids_len; i++) { |
| 92 | 85 | const char *s = initial_sid_to_string[i]; |
| 93 | − fprintf(fout, "#define SECINITSID_%s", s); | |
| 94 | − for (j = 0; j < max(1, 40 - strlen(s)); j++) | |
| 95 | − fprintf(fout, " "); | |
| 96 | − fprintf(fout, "%2d\n", i); | |
| 86 | + fprintf(fout, "#define SECINITSID_%-39s %2d\n", s, i); | |
| 97 | 87 | } |
| 98 | 88 | fprintf(fout, "\n#define SECINITSID_NUM %d\n", i-1); |
| 99 | 89 | fprintf(fout, "\nstatic inline bool security_is_socket_class(u16 kern_tclass)\n"); |
| @@ -101,9 +91,10 @@ int main(int argc, char *argv[]) · 1 unmodified line | ||
| 101 | 91 | fprintf(fout, "\tbool sock = false;\n\n"); |
| 102 | 92 | fprintf(fout, "\tswitch (kern_tclass) {\n"); |
| 103 | 93 | for (i = 0; secclass_map[i].name; i++) { |
| 94 | + static char s[] = "SOCKET"; | |
| 104 | 95 | struct security_class_mapping *map = &secclass_map[i]; |
| 105 | − substr = strstr(map->name, needle); | |
| 106 | − if (substr && strcmp(substr, needle) == 0) | |
| 96 | + int len = strlen(map->name), l = sizeof(s) - 1; | |
| 97 | + if (len >= l && memcmp(map->name + len - l, s, l) == 0) | |
| 107 | 98 | fprintf(fout, "\tcase SECCLASS_%s:\n", map->name); |
| 108 | 99 | } |
| 109 | 100 | fprintf(fout, "\t\tsock = true;\n"); |
| @@ -129,17 +120,15 @@ int main(int argc, char *argv[]) · 19 unmodified lines | ||
| 129 | 120 | |
| 130 | 121 | for (i = 0; secclass_map[i].name; i++) { |
| 131 | 122 | struct security_class_mapping *map = &secclass_map[i]; |
| 123 | + int len = strlen(map->name); | |
| 132 | 124 | for (j = 0; map->perms[j]; j++) { |
| 133 | 125 | if (j >= 32) { |
| 134 | 126 | fprintf(stderr, "Too many permissions to fit into an access vector at (%s, %s).\n", |
| 135 | 127 | map->name, map->perms[j]); |
| 136 | 128 | exit(5); |
| 137 | 129 | } |
| 138 | − fprintf(fout, "#define %s__%s", map->name, | |
| 139 | − map->perms[j]); | |
| 140 | − for (k = 0; k < max(1, 40 - strlen(map->name) - strlen(map->perms[j])); k++) | |
| 141 | − fprintf(fout, " "); | |
| 142 | − fprintf(fout, "0x%08xU\n", (1<<j)); | |
| 130 | + fprintf(fout, "#define %s__%-*s 0x%08xU\n", map->name, | |
| 131 | + 39-len, map->perms[j], 1U<<j); | |
| 143 | 132 | } |
| 144 | 133 | } |
| 145 | 134 | |