Symlink cycles hang sdist(). The while member.issym(): resolution loop never terminates if the archive contains a symlink cycle (a -> b, b -> a). Malformed input, but a bounded loop or visited-set would turn a hang into a warning like the other symlink cases.
Originally reported in #861.
Hitting this in real projects is extremely unlikely. I am not even sure whether git archive allows to create such symlink cycles. Anyhow, just to be on the safe side we should add protection for this, but given the impact it is very low priority.
Symlink cycles hang
sdist(). Thewhile member.issym():resolution loop never terminates if the archive contains a symlink cycle (a -> b, b -> a). Malformed input, but a bounded loop or visited-set would turn a hang into a warning like the other symlink cases.Originally reported in #861.
Hitting this in real projects is extremely unlikely. I am not even sure whether
git archiveallows to create such symlink cycles. Anyhow, just to be on the safe side we should add protection for this, but given the impact it is very low priority.