瀏覽代碼

integrity: add validity checks for 'path' parameter

This patch adds validity checks for 'path' parameter and
makes it const.

Signed-off-by: Dmitry Kasatkin <d.kasatkin@samsung.com>
Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
Dmitry Kasatkin 10 年之前
父節點
當前提交
9d03a721a3
共有 3 個文件被更改,包括 5 次插入2 次删除
  1. 1 1
      security/integrity/digsig.c
  2. 3 0
      security/integrity/iint.c
  3. 1 1
      security/integrity/integrity.h

+ 1 - 1
security/integrity/digsig.c

@@ -85,7 +85,7 @@ int __init integrity_init_keyring(const unsigned int id)
 	return err;
 	return err;
 }
 }
 
 
-int __init integrity_load_x509(const unsigned int id, char *path)
+int __init integrity_load_x509(const unsigned int id, const char *path)
 {
 {
 	key_ref_t key;
 	key_ref_t key;
 	char *data;
 	char *data;

+ 3 - 0
security/integrity/iint.c

@@ -213,6 +213,9 @@ int __init integrity_read_file(const char *path, char **data)
 	char *buf;
 	char *buf;
 	int rc = -EINVAL;
 	int rc = -EINVAL;
 
 
+	if (!path || !*path)
+		return -EINVAL;
+
 	file = filp_open(path, O_RDONLY, 0);
 	file = filp_open(path, O_RDONLY, 0);
 	if (IS_ERR(file)) {
 	if (IS_ERR(file)) {
 		rc = PTR_ERR(file);
 		rc = PTR_ERR(file);

+ 1 - 1
security/integrity/integrity.h

@@ -135,7 +135,7 @@ int integrity_digsig_verify(const unsigned int id, const char *sig, int siglen,
 			    const char *digest, int digestlen);
 			    const char *digest, int digestlen);
 
 
 int __init integrity_init_keyring(const unsigned int id);
 int __init integrity_init_keyring(const unsigned int id);
-int __init integrity_load_x509(const unsigned int id, char *path);
+int __init integrity_load_x509(const unsigned int id, const char *path);
 #else
 #else
 
 
 static inline int integrity_digsig_verify(const unsigned int id,
 static inline int integrity_digsig_verify(const unsigned int id,