diff options
Diffstat (limited to 'security/selinux/ss/ebitmap.c')
-rw-r--r-- | security/selinux/ss/ebitmap.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/security/selinux/ss/ebitmap.c b/security/selinux/ss/ebitmap.c index cfed1d30fa6a..d539346ab3a2 100644 --- a/security/selinux/ss/ebitmap.c +++ b/security/selinux/ss/ebitmap.c | |||
@@ -93,11 +93,15 @@ int ebitmap_export(const struct ebitmap *src, | |||
93 | size_t bitmap_byte; | 93 | size_t bitmap_byte; |
94 | unsigned char bitmask; | 94 | unsigned char bitmask; |
95 | 95 | ||
96 | if (src->highbit == 0) { | ||
97 | *dst = NULL; | ||
98 | *dst_len = 0; | ||
99 | return 0; | ||
100 | } | ||
101 | |||
96 | bitmap_len = src->highbit / 8; | 102 | bitmap_len = src->highbit / 8; |
97 | if (src->highbit % 7) | 103 | if (src->highbit % 7) |
98 | bitmap_len += 1; | 104 | bitmap_len += 1; |
99 | if (bitmap_len == 0) | ||
100 | return -EINVAL; | ||
101 | 105 | ||
102 | bitmap = kzalloc((bitmap_len & ~(sizeof(MAPTYPE) - 1)) + | 106 | bitmap = kzalloc((bitmap_len & ~(sizeof(MAPTYPE) - 1)) + |
103 | sizeof(MAPTYPE), | 107 | sizeof(MAPTYPE), |