Kernel: Process keeps track if forked process has called exec*()
This commit is contained in:
		
							parent
							
								
									97ea4986af
								
							
						
					
					
						commit
						f1ba5c7e0f
					
				|  | @ -180,6 +180,8 @@ namespace Kernel | |||
| 		userspace_info_t m_userspace_info; | ||||
| 		ExitStatus m_exit_status; | ||||
| 
 | ||||
| 		bool m_has_called_exec { false }; | ||||
| 
 | ||||
| 		BAN::UniqPtr<PageTable> m_page_table; | ||||
| 		BAN::RefPtr<TTY> m_controlling_terminal; | ||||
| 
 | ||||
|  |  | |||
|  | @ -381,6 +381,7 @@ namespace Kernel | |||
| 		forked->m_general_allocator = BAN::move(general_allocator); | ||||
| 		forked->m_is_userspace = m_is_userspace; | ||||
| 		forked->m_userspace_info = m_userspace_info; | ||||
| 		forked->m_has_called_exec = false; | ||||
| 		memcpy(forked->m_signal_handlers, m_signal_handlers, sizeof(m_signal_handlers)); | ||||
| 
 | ||||
| 		ASSERT(this == &Process::current()); | ||||
|  | @ -586,6 +587,8 @@ namespace Kernel | |||
| 				ASSERT_NOT_REACHED(); | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		m_has_called_exec = true; | ||||
| 	} | ||||
| 
 | ||||
| 	BAN::ErrorOr<long> Process::sys_open(BAN::StringView path, int flags, mode_t mode) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue