diff options
Diffstat (limited to 'security/selinux/ss/ebitmap.c')
| -rw-r--r-- | security/selinux/ss/ebitmap.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/security/selinux/ss/ebitmap.c b/security/selinux/ss/ebitmap.c index d515154128cc..47024a6e1844 100644 --- a/security/selinux/ss/ebitmap.c +++ b/security/selinux/ss/ebitmap.c | |||
| @@ -39,12 +39,11 @@ int ebitmap_cpy(struct ebitmap *dst, struct ebitmap *src) | |||
| 39 | n = src->node; | 39 | n = src->node; |
| 40 | prev = NULL; | 40 | prev = NULL; |
| 41 | while (n) { | 41 | while (n) { |
| 42 | new = kmalloc(sizeof(*new), GFP_ATOMIC); | 42 | new = kzalloc(sizeof(*new), GFP_ATOMIC); |
| 43 | if (!new) { | 43 | if (!new) { |
| 44 | ebitmap_destroy(dst); | 44 | ebitmap_destroy(dst); |
| 45 | return -ENOMEM; | 45 | return -ENOMEM; |
| 46 | } | 46 | } |
| 47 | memset(new, 0, sizeof(*new)); | ||
| 48 | new->startbit = n->startbit; | 47 | new->startbit = n->startbit; |
| 49 | new->map = n->map; | 48 | new->map = n->map; |
| 50 | new->next = NULL; | 49 | new->next = NULL; |
| @@ -150,10 +149,9 @@ int ebitmap_set_bit(struct ebitmap *e, unsigned long bit, int value) | |||
| 150 | if (!value) | 149 | if (!value) |
| 151 | return 0; | 150 | return 0; |
| 152 | 151 | ||
| 153 | new = kmalloc(sizeof(*new), GFP_ATOMIC); | 152 | new = kzalloc(sizeof(*new), GFP_ATOMIC); |
| 154 | if (!new) | 153 | if (!new) |
| 155 | return -ENOMEM; | 154 | return -ENOMEM; |
| 156 | memset(new, 0, sizeof(*new)); | ||
| 157 | 155 | ||
| 158 | new->startbit = bit & ~(MAPSIZE - 1); | 156 | new->startbit = bit & ~(MAPSIZE - 1); |
| 159 | new->map = (MAPBIT << (bit - new->startbit)); | 157 | new->map = (MAPBIT << (bit - new->startbit)); |
| @@ -232,13 +230,12 @@ int ebitmap_read(struct ebitmap *e, void *fp) | |||
| 232 | printk(KERN_ERR "security: ebitmap: truncated map\n"); | 230 | printk(KERN_ERR "security: ebitmap: truncated map\n"); |
| 233 | goto bad; | 231 | goto bad; |
| 234 | } | 232 | } |
| 235 | n = kmalloc(sizeof(*n), GFP_KERNEL); | 233 | n = kzalloc(sizeof(*n), GFP_KERNEL); |
| 236 | if (!n) { | 234 | if (!n) { |
| 237 | printk(KERN_ERR "security: ebitmap: out of memory\n"); | 235 | printk(KERN_ERR "security: ebitmap: out of memory\n"); |
| 238 | rc = -ENOMEM; | 236 | rc = -ENOMEM; |
| 239 | goto bad; | 237 | goto bad; |
| 240 | } | 238 | } |
| 241 | memset(n, 0, sizeof(*n)); | ||
| 242 | 239 | ||
| 243 | n->startbit = le32_to_cpu(buf[0]); | 240 | n->startbit = le32_to_cpu(buf[0]); |
| 244 | 241 | ||
