find_exec.c 및 envp변수 관리
Closed this issue · 1 comments
geneeol commented
find_exec.c (1/15)
- find_exec_from_path 함수에서 18번째 줄 인덴트가 안맞음
- replace_if_found에서 만약 paths에 정상적이 디렉토리 경로와, 존재하지 않는 디렉토리 경로가 섞여있으면, 정상 경로를 찾을 가능성이 있을 때도 ERROR_IO를 출력하고 종료될 수 있음. (수정해야하나..?)
- find exec에서 CODE_OK가 반환되더라도 ./non_existing_file 일 수 있음. (존재하지 않는 파일)
정말 억까 케이스로 파일명에 /가 있고, PATH경로에 해당 바이너리파일이 등록돼 있다면? - 제안: CODE_OK는 '실제로 바이너리 파일이 존재하는 경우만 반환하면 어떨까?
이렇게 처리하면 굳이 F_OK를 한번 더 확인하지 않아도 될듯.
envp (1/15)
- execve를 호출하기 위해 evnp를 매개변수로 전달해야함.
- envp 주소만 전역변수에 등록해둬도 상관없을 것 같음.
earthicko commented
replace_if_found에서 만약 paths에 정상적이 디렉토리 경로와, 존재하지 않는 디렉토리 경로가 섞여있으면, 정상 경로를 찾을 가능성이 있을 때도 ERROR_IO를 출력하고 종료될 수 있음. (수정해야하나..?)
타당함 수정해야함
find exec에서 CODE_OK가 반환되더라도 ./non_existing_file 일 수 있음. (존재하지 않는 파일)
정말 억까 케이스로 파일명에 /가 있고, PATH경로에 해당 바이너리파일이 등록돼 있다면?
슬래시가 포함된 파일에 대해서 존재하는 파일인지 체크하는 로직을 추가하겠음
execve를 호출하기 위해 evnp를 매개변수로 전달해야함.
envp 주소만 전역변수에 등록해둬도 상관없을 것 같음.
envman_getenvp()
함수를 써서 execve()
에 매개 변수로 전달하기 위한 envp
를 생성할 수 있음