mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 16:54:21 +00:00 
			
		
		
		
	path_openat(): fix double fput()
path_openat() jumps to the wrong place after do_tmpfile() - it has already done path_cleanup() (as part of path_lookupat() called by do_tmpfile()), so doing that again can lead to double fput(). Cc: stable@vger.kernel.org # v3.11+ Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
		
							parent
							
								
									766c4cbfac
								
							
						
					
					
						commit
						f15133df08
					
				
					 1 changed files with 2 additions and 1 deletions
				
			
		|  | @ -3233,7 +3233,7 @@ static struct file *path_openat(int dfd, struct filename *pathname, | |||
| 
 | ||||
| 	if (unlikely(file->f_flags & __O_TMPFILE)) { | ||||
| 		error = do_tmpfile(dfd, pathname, nd, flags, op, file, &opened); | ||||
| 		goto out; | ||||
| 		goto out2; | ||||
| 	} | ||||
| 
 | ||||
| 	error = path_init(dfd, pathname, flags, nd); | ||||
|  | @ -3263,6 +3263,7 @@ static struct file *path_openat(int dfd, struct filename *pathname, | |||
| 	} | ||||
| out: | ||||
| 	path_cleanup(nd); | ||||
| out2: | ||||
| 	if (!(opened & FILE_OPENED)) { | ||||
| 		BUG_ON(!error); | ||||
| 		put_filp(file); | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Al Viro
						Al Viro