···16161717#ifdef CONFIG_IMA1818extern int ima_bprm_check(struct linux_binprm *bprm);1919-extern int ima_file_check(struct file *file, int mask, int opened);1919+extern int ima_file_check(struct file *file, int mask);2020extern void ima_file_free(struct file *file);2121extern int ima_file_mmap(struct file *file, unsigned long prot);2222extern int ima_read_file(struct file *file, enum kernel_read_file_id id);···3434 return 0;3535}36363737-static inline int ima_file_check(struct file *file, int mask, int opened)3737+static inline int ima_file_check(struct file *file, int mask)3838{3939 return 0;4040}
+2-2
security/integrity/ima/ima.h
···238238 struct integrity_iint_cache *iint,239239 struct file *file, const unsigned char *filename,240240 struct evm_ima_xattr_data *xattr_value,241241- int xattr_len, int opened);241241+ int xattr_len);242242int ima_must_appraise(struct inode *inode, int mask, enum ima_hooks func);243243void ima_update_xattr(struct integrity_iint_cache *iint, struct file *file);244244enum integrity_status ima_get_cache_status(struct integrity_iint_cache *iint,···254254 struct file *file,255255 const unsigned char *filename,256256 struct evm_ima_xattr_data *xattr_value,257257- int xattr_len, int opened)257257+ int xattr_len)258258{259259 return INTEGRITY_UNKNOWN;260260}
+2-2
security/integrity/ima/ima_appraise.c
···212212 struct integrity_iint_cache *iint,213213 struct file *file, const unsigned char *filename,214214 struct evm_ima_xattr_data *xattr_value,215215- int xattr_len, int opened)215215+ int xattr_len)216216{217217 static const char op[] = "appraise_data";218218 const char *cause = "unknown";···231231 cause = iint->flags & IMA_DIGSIG_REQUIRED ?232232 "IMA-signature-required" : "missing-hash";233233 status = INTEGRITY_NOLABEL;234234- if (opened & FILE_CREATED)234234+ if (file->f_mode & FMODE_CREATED)235235 iint->flags |= IMA_NEW_FILE;236236 if ((iint->flags & IMA_NEW_FILE) &&237237 (!(iint->flags & IMA_DIGSIG_REQUIRED) ||
+8-8
security/integrity/ima/ima_main.c
···168168169169static int process_measurement(struct file *file, const struct cred *cred,170170 u32 secid, char *buf, loff_t size, int mask,171171- enum ima_hooks func, int opened)171171+ enum ima_hooks func)172172{173173 struct inode *inode = file_inode(file);174174 struct integrity_iint_cache *iint = NULL;···294294 if (rc == 0 && (action & IMA_APPRAISE_SUBMASK)) {295295 inode_lock(inode);296296 rc = ima_appraise_measurement(func, iint, file, pathname,297297- xattr_value, xattr_len, opened);297297+ xattr_value, xattr_len);298298 inode_unlock(inode);299299 }300300 if (action & IMA_AUDIT)···338338 if (file && (prot & PROT_EXEC)) {339339 security_task_getsecid(current, &secid);340340 return process_measurement(file, current_cred(), secid, NULL,341341- 0, MAY_EXEC, MMAP_CHECK, 0);341341+ 0, MAY_EXEC, MMAP_CHECK);342342 }343343344344 return 0;···364364365365 security_task_getsecid(current, &secid);366366 ret = process_measurement(bprm->file, current_cred(), secid, NULL, 0,367367- MAY_EXEC, BPRM_CHECK, 0);367367+ MAY_EXEC, BPRM_CHECK);368368 if (ret)369369 return ret;370370371371 security_cred_getsecid(bprm->cred, &secid);372372 return process_measurement(bprm->file, bprm->cred, secid, NULL, 0,373373- MAY_EXEC, CREDS_CHECK, 0);373373+ MAY_EXEC, CREDS_CHECK);374374}375375376376/**···383383 * On success return 0. On integrity appraisal error, assuming the file384384 * is in policy and IMA-appraisal is in enforcing mode, return -EACCES.385385 */386386-int ima_file_check(struct file *file, int mask, int opened)386386+int ima_file_check(struct file *file, int mask)387387{388388 u32 secid;389389390390 security_task_getsecid(current, &secid);391391 return process_measurement(file, current_cred(), secid, NULL, 0,392392 mask & (MAY_READ | MAY_WRITE | MAY_EXEC |393393- MAY_APPEND), FILE_CHECK, opened);393393+ MAY_APPEND), FILE_CHECK);394394}395395EXPORT_SYMBOL_GPL(ima_file_check);396396···493493 func = read_idmap[read_id] ?: FILE_CHECK;494494 security_task_getsecid(current, &secid);495495 return process_measurement(file, current_cred(), secid, buf, size,496496- MAY_READ, func, 0);496496+ MAY_READ, func);497497}498498499499static int __init init_ima(void)