forked from mirrors/linux
		
	fs: completely ignore unknown open flags
Currently we just stash anything we got into file->f_flags, and the report it in fcntl(F_GETFD). This patch just clears out all unknown flags so that we don't pass them to the fs or report them. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
		
							parent
							
								
									80f18379a7
								
							
						
					
					
						commit
						629e014bb8
					
				
					 1 changed files with 6 additions and 0 deletions
				
			
		| 
						 | 
					@ -900,6 +900,12 @@ static inline int build_open_flags(int flags, umode_t mode, struct open_flags *o
 | 
				
			||||||
	int lookup_flags = 0;
 | 
						int lookup_flags = 0;
 | 
				
			||||||
	int acc_mode = ACC_MODE(flags);
 | 
						int acc_mode = ACC_MODE(flags);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/*
 | 
				
			||||||
 | 
						 * Clear out all open flags we don't know about so that we don't report
 | 
				
			||||||
 | 
						 * them in fcntl(F_GETFD) or similar interfaces.
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						flags &= VALID_OPEN_FLAGS;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (flags & (O_CREAT | __O_TMPFILE))
 | 
						if (flags & (O_CREAT | __O_TMPFILE))
 | 
				
			||||||
		op->mode = (mode & S_IALLUGO) | S_IFREG;
 | 
							op->mode = (mode & S_IALLUGO) | S_IFREG;
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue