diff options
Diffstat (limited to 'fs/jffs2/acl.c')
-rw-r--r-- | fs/jffs2/acl.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/jffs2/acl.c b/fs/jffs2/acl.c index d98713777a1b..043740dde20c 100644 --- a/fs/jffs2/acl.c +++ b/fs/jffs2/acl.c | |||
@@ -38,12 +38,12 @@ static int jffs2_acl_count(size_t size) | |||
38 | size_t s; | 38 | size_t s; |
39 | 39 | ||
40 | size -= sizeof(struct jffs2_acl_header); | 40 | size -= sizeof(struct jffs2_acl_header); |
41 | s = size - 4 * sizeof(struct jffs2_acl_entry_short); | 41 | if (size < 4 * sizeof(struct jffs2_acl_entry_short)) { |
42 | if (s < 0) { | ||
43 | if (size % sizeof(struct jffs2_acl_entry_short)) | 42 | if (size % sizeof(struct jffs2_acl_entry_short)) |
44 | return -1; | 43 | return -1; |
45 | return size / sizeof(struct jffs2_acl_entry_short); | 44 | return size / sizeof(struct jffs2_acl_entry_short); |
46 | } else { | 45 | } else { |
46 | s = size - 4 * sizeof(struct jffs2_acl_entry_short); | ||
47 | if (s % sizeof(struct jffs2_acl_entry)) | 47 | if (s % sizeof(struct jffs2_acl_entry)) |
48 | return -1; | 48 | return -1; |
49 | return s / sizeof(struct jffs2_acl_entry) + 4; | 49 | return s / sizeof(struct jffs2_acl_entry) + 4; |
@@ -336,7 +336,7 @@ int jffs2_init_acl_pre(struct inode *dir_i, struct inode *inode, int *i_mode) | |||
336 | return PTR_ERR(acl); | 336 | return PTR_ERR(acl); |
337 | 337 | ||
338 | if (!acl) { | 338 | if (!acl) { |
339 | *i_mode &= ~current->fs->umask; | 339 | *i_mode &= ~current_umask(); |
340 | } else { | 340 | } else { |
341 | if (S_ISDIR(*i_mode)) | 341 | if (S_ISDIR(*i_mode)) |
342 | jffs2_iset_acl(inode, &f->i_acl_default, acl); | 342 | jffs2_iset_acl(inode, &f->i_acl_default, acl); |