mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 00:28:52 +02:00 
			
		
		
		
	vfs: define kernel_copy_file_from_fd()
This patch defines kernel_read_file_from_fd(), a wrapper for the VFS common kernel_read_file(). Changelog: - Separated from the kernel modules patch Acked-by: Kees Cook <keescook@chromium.org> Acked-by: Luis R. Rodriguez <mcgrof@kernel.org> Cc: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
This commit is contained in:
		
							parent
							
								
									39eeb4fb97
								
							
						
					
					
						commit
						b844f0ecbc
					
				
					 2 changed files with 18 additions and 0 deletions
				
			
		
							
								
								
									
										16
									
								
								fs/exec.c
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								fs/exec.c
									
									
									
									
									
								
							|  | @ -907,6 +907,22 @@ int kernel_read_file_from_path(char *path, void **buf, loff_t *size, | |||
| } | ||||
| EXPORT_SYMBOL_GPL(kernel_read_file_from_path); | ||||
| 
 | ||||
| int kernel_read_file_from_fd(int fd, void **buf, loff_t *size, loff_t max_size, | ||||
| 			     enum kernel_read_file_id id) | ||||
| { | ||||
| 	struct fd f = fdget(fd); | ||||
| 	int ret = -EBADF; | ||||
| 
 | ||||
| 	if (!f.file) | ||||
| 		goto out; | ||||
| 
 | ||||
| 	ret = kernel_read_file(f.file, buf, size, max_size, id); | ||||
| out: | ||||
| 	fdput(f); | ||||
| 	return ret; | ||||
| } | ||||
| EXPORT_SYMBOL_GPL(kernel_read_file_from_fd); | ||||
| 
 | ||||
| ssize_t read_code(struct file *file, unsigned long addr, loff_t pos, size_t len) | ||||
| { | ||||
| 	ssize_t res = vfs_read(file, (void __user *)addr, len, &pos); | ||||
|  |  | |||
|  | @ -2586,6 +2586,8 @@ extern int kernel_read_file(struct file *, void **, loff_t *, loff_t, | |||
| 			    enum kernel_read_file_id); | ||||
| extern int kernel_read_file_from_path(char *, void **, loff_t *, loff_t, | ||||
| 				      enum kernel_read_file_id); | ||||
| extern int kernel_read_file_from_fd(int, void **, loff_t *, loff_t, | ||||
| 				    enum kernel_read_file_id); | ||||
| extern ssize_t kernel_write(struct file *, const char *, size_t, loff_t); | ||||
| extern ssize_t __kernel_write(struct file *, const char *, size_t, loff_t *); | ||||
| extern struct file * open_exec(const char *); | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Mimi Zohar
						Mimi Zohar