The resulting extraction directory still exists despite this failure.
On a different system where /root was world readable, the error was
replaced with a warning:
dpkg-source: warning: extracting unsigned source package (exe_1.04.1.3602-boss1.dsc)
dpkg-source: info: extracting exe in exe-1.04.1.3602
dpkg-source: info: unpacking exe_1.04.1.3602-boss1.tar.gz
dpkg-source: warning: exe-1.04.1.3602/debian/rules does not exist
I see several problems with this...
When there is an error I would expect dpkg-source to clean up after
itself, probably a --no-cleanup option needs adding though for people
wanting to debug why the extraction failed.
I don't understand why dpkg-source needs to look at debian/rules at all.
And more fundamentally, dpkg-dev should never extract or follow symlinks
that point outside the source package. That includes all absolute ones
and any relative ones with too many .. in their link target. Even if
dpkg-source doesn't write to them during unpack, they could have some
other impact on the user's system if they access them thinking that
since Debian source packages are self-contained they should be safe.
This issue seems to be present in both squeeze and wheezy. I did not
test if the issue is present in lenny.