現在、runc コマンドは実行時に chdir(./rootfs)
してから exec(argv[0])
している。(古き良き daemon の "/" に移動してからって感じ)
以下の様なディレクトリ構成で /opt/sbin がパスに含まれている場合
/
|-opt
|-sbin
| |-runc <- command
|-runcdir <- pwd
|-rootfs
#28 の修正前
- runc -> OK
- /opt/sbin/runc -> OK
- ../sbin/runc -> NG
chdir(/opt/runcdir/rootfs)
してから exec(../sbin/runc)
しても ../sbin/runc
には存在しないので
#28 の修正後
- runc -> NG
- /opt/sbin/runc -> OK
- ../sbin/runc -> OK
単に runc
として実行した場合に、filepath.Abs(runc)
となって /opt/runcdir/runc
になってしまうため