Commit 7b3bbb926f4b3dd3a007dcf8dfa00203f52cb58d
Committed by
David S. Miller
1 parent
c1b14c0a46
Exists in
master
and in
4 other branches
[NetLabel]: Cleanup ebitmap_import()
Rewrite ebitmap_import() so it is a bit cleaner and easier to read. Signed-off-by: Paul Moore <paul.moore@hp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Showing 1 changed file with 16 additions and 20 deletions Side-by-side Diff
security/selinux/ss/ebitmap.c
| ... | ... | @@ -145,29 +145,28 @@ |
| 145 | 145 | struct ebitmap *dst) |
| 146 | 146 | { |
| 147 | 147 | size_t src_off = 0; |
| 148 | + size_t node_limit; | |
| 148 | 149 | struct ebitmap_node *node_new; |
| 149 | 150 | struct ebitmap_node *node_last = NULL; |
| 150 | - size_t iter; | |
| 151 | - size_t iter_bit; | |
| 152 | - size_t iter_limit; | |
| 151 | + u32 i_byte; | |
| 152 | + u32 i_bit; | |
| 153 | 153 | unsigned char src_byte; |
| 154 | 154 | |
| 155 | - do { | |
| 156 | - iter_limit = src_len - src_off; | |
| 157 | - if (iter_limit >= sizeof(MAPTYPE)) { | |
| 155 | + while (src_off < src_len) { | |
| 156 | + if (src_len - src_off >= sizeof(MAPTYPE)) { | |
| 158 | 157 | if (*(MAPTYPE *)&src[src_off] == 0) { |
| 159 | 158 | src_off += sizeof(MAPTYPE); |
| 160 | 159 | continue; |
| 161 | 160 | } |
| 162 | - iter_limit = sizeof(MAPTYPE); | |
| 161 | + node_limit = sizeof(MAPTYPE); | |
| 163 | 162 | } else { |
| 164 | - iter = src_off; | |
| 165 | - src_byte = 0; | |
| 166 | - do { | |
| 167 | - src_byte |= src[iter++]; | |
| 168 | - } while (iter < src_len && src_byte == 0); | |
| 163 | + for (src_byte = 0, i_byte = src_off; | |
| 164 | + i_byte < src_len && src_byte == 0; | |
| 165 | + i_byte++) | |
| 166 | + src_byte |= src[i_byte]; | |
| 169 | 167 | if (src_byte == 0) |
| 170 | 168 | break; |
| 169 | + node_limit = src_len - src_off; | |
| 171 | 170 | } |
| 172 | 171 | |
| 173 | 172 | node_new = kzalloc(sizeof(*node_new), GFP_ATOMIC); |
| 174 | 173 | |
| 175 | 174 | |
| 176 | 175 | |
| 177 | 176 | |
| ... | ... | @@ -176,24 +175,21 @@ |
| 176 | 175 | return -ENOMEM; |
| 177 | 176 | } |
| 178 | 177 | node_new->startbit = src_off * 8; |
| 179 | - iter = 0; | |
| 180 | - do { | |
| 178 | + for (i_byte = 0; i_byte < node_limit; i_byte++) { | |
| 181 | 179 | src_byte = src[src_off++]; |
| 182 | - iter_bit = iter++ * 8; | |
| 183 | - while (src_byte != 0) { | |
| 180 | + for (i_bit = i_byte * 8; src_byte != 0; i_bit++) { | |
| 184 | 181 | if (src_byte & 0x80) |
| 185 | - node_new->map |= MAPBIT << iter_bit; | |
| 186 | - iter_bit++; | |
| 182 | + node_new->map |= MAPBIT << i_bit; | |
| 187 | 183 | src_byte <<= 1; |
| 188 | 184 | } |
| 189 | - } while (iter < iter_limit); | |
| 185 | + } | |
| 190 | 186 | |
| 191 | 187 | if (node_last != NULL) |
| 192 | 188 | node_last->next = node_new; |
| 193 | 189 | else |
| 194 | 190 | dst->node = node_new; |
| 195 | 191 | node_last = node_new; |
| 196 | - } while (src_off < src_len); | |
| 192 | + } | |
| 197 | 193 | |
| 198 | 194 | if (likely(node_last != NULL)) |
| 199 | 195 | dst->highbit = node_last->startbit + MAPSIZE; |