Check for presence of SHELL environment variable
- POSIX states the SHELL environment variable "... shall represent a pathname of the user's preferred command language interpreter." As such, st should check for its presence when deciding what shell to use; just as HOME can be defined to override one's passwd-defined home directory, a user should also be able to override their passwd-defined shell using the SHELL environment variable.
This commit is contained in:
		
				
					committed by
					
						
						Roberto E. Vargas Caballero
					
				
			
			
				
	
			
			
			
						parent
						
							11625c7166
						
					
				
				
					commit
					bafbba56cd
				
			
							
								
								
									
										5
									
								
								st.c
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								st.c
									
									
									
									
									
								
							@ -1158,7 +1158,10 @@ execsh(void) {
 | 
				
			|||||||
			die("who are you?\n");
 | 
								die("who are you?\n");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	sh = (pw->pw_shell[0]) ? pw->pw_shell : shell;
 | 
						if (!(sh = getenv("SHELL"))) {
 | 
				
			||||||
 | 
							sh = (pw->pw_shell[0]) ? pw->pw_shell : shell;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if(opt_cmd)
 | 
						if(opt_cmd)
 | 
				
			||||||
		prog = opt_cmd[0];
 | 
							prog = opt_cmd[0];
 | 
				
			||||||
	else if(utmp)
 | 
						else if(utmp)
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user