earthicko/ddsh

find_exec.c 및 envp변수 관리

Closed this issue · 1 comments

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 주소만 전역변수에 등록해둬도 상관없을 것 같음.

replace_if_found에서 만약 paths에 정상적이 디렉토리 경로와, 존재하지 않는 디렉토리 경로가 섞여있으면, 정상 경로를 찾을 가능성이 있을 때도 ERROR_IO를 출력하고 종료될 수 있음. (수정해야하나..?)

타당함 수정해야함

find exec에서 CODE_OK가 반환되더라도 ./non_existing_file 일 수 있음. (존재하지 않는 파일)
정말 억까 케이스로 파일명에 /가 있고, PATH경로에 해당 바이너리파일이 등록돼 있다면?

슬래시가 포함된 파일에 대해서 존재하는 파일인지 체크하는 로직을 추가하겠음

execve를 호출하기 위해 evnp를 매개변수로 전달해야함.
envp 주소만 전역변수에 등록해둬도 상관없을 것 같음.

envman_getenvp()함수를 써서 execve()에 매개 변수로 전달하기 위한 envp를 생성할 수 있음