요약
exec는 fs.Args()를 Minecraft 명령으로 사용하지만 다른 flag 기반 서브커맨드는 fs.Parse(args) 이후 남은 positional 인수를 확인하지 않습니다. 대표적으로 dpt check <path>는 <path>를 무시하고 현재 디렉터리 또는 --pack만 검사합니다.
- 검토 기준:
main@4e87765f95c106edb3c956cfad2abc1db64c0c39
- 판정:
check CONFIRMED, 다른 명령은 코드상 동일 정책
- 우선순위: P2
영향
사용자가 검사 대상을 positional 인수로 잘못 전달해도 현재 디렉터리가 유효한 팩이면 의도한 대상을 전혀 검사하지 않고 성공할 수 있습니다.
재현 및 검증 방법
cd /path/to/valid-pack-a
dpt check /definitely/not/the/pack
echo $?
현재 pack A를 검사해 exit 0을 반환하며 positional 인수가 무시됐다는 오류가 없습니다. 다음처럼 positional 뒤 flag가 무시되는 경우도 검사해야 합니다.
dpt check ignored --pack /path/to/pack-b
기대 동작
positional 인수를 지원하지 않는 명령은 남은 인수가 있으면 ExitUsage(2)로 실패해야 합니다. exec의 positional Minecraft 명령 동작은 유지해야 합니다.
완료 조건
관련 코드
요약
exec는fs.Args()를 Minecraft 명령으로 사용하지만 다른 flag 기반 서브커맨드는fs.Parse(args)이후 남은 positional 인수를 확인하지 않습니다. 대표적으로dpt check <path>는<path>를 무시하고 현재 디렉터리 또는--pack만 검사합니다.main@4e87765f95c106edb3c956cfad2abc1db64c0c39checkCONFIRMED, 다른 명령은 코드상 동일 정책영향
사용자가 검사 대상을 positional 인수로 잘못 전달해도 현재 디렉터리가 유효한 팩이면 의도한 대상을 전혀 검사하지 않고 성공할 수 있습니다.
재현 및 검증 방법
현재 pack A를 검사해 exit 0을 반환하며 positional 인수가 무시됐다는 오류가 없습니다. 다음처럼 positional 뒤 flag가 무시되는 경우도 검사해야 합니다.
기대 동작
positional 인수를 지원하지 않는 명령은 남은 인수가 있으면
ExitUsage(2)로 실패해야 합니다.exec의 positional Minecraft 명령 동작은 유지해야 합니다.완료 조건
NArg검증을 추가한다.init,uninit,check,test,shell,doctor,clean을 테스트한다.exec의 기존 동작은 유지한다.관련 코드
runCheckrunTestrunExec