diff options
author | joey <joey> | 2001-12-27 02:22:58 +0000 |
---|---|---|
committer | joey <joey> | 2001-12-27 02:22:58 +0000 |
commit | a37ba2e615d3dbcaa89201d657a6a7b6790576be (patch) | |
tree | 5add95213137b64f101e5c6d033f7820fe69d2b5 | |
parent | 1580712ddc7c6faf97ed46452e410e72291814ce (diff) |
r499: * dh_strip: run file using a safe pipe open, that will not expose any weird
characters in filenames to a shell. Closes: #126491
* fixed dh_testdir man page
-rw-r--r-- | debian/changelog | 8 | ||||
-rwxr-xr-x | dh_strip | 15 | ||||
-rwxr-xr-x | dh_testdir | 2 |
3 files changed, 22 insertions, 3 deletions
diff --git a/debian/changelog b/debian/changelog index 62afa777..43624a73 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +debhelper (3.0.53) unstable; urgency=low + + * dh_strip: run file using a safe pipe open, that will not expose any weird + characters in filenames to a shell. Closes: #126491 + * fixed dh_testdir man page + + -- Joey Hess <joeyh@debian.org> Wed, 26 Dec 2001 21:15:42 -0500 + debhelper (3.0.52) unstable; urgency=low * Typo, Closes: #122679 @@ -53,6 +53,17 @@ if (defined $ENV{DEB_BUILD_OPTIONS} && $ENV{DEB_BUILD_OPTIONS} =~ /nostrip/) { exit; } +# I could just use `file $_[0]`, but this is safer +sub get_file_type { + my $file=shift; + open (FILE, '-|') # handle all filenames safely + || exec('file', $file) + || die "can't exec file: $!"; + my $type=<FILE>; + close FILE; + return $type; +} + # Check if a file is an elf binary, shared library, or static library, # for use by File::Find. It'll fill the following 3 arrays with anything # it finds: @@ -70,7 +81,7 @@ sub testfile { # Does its filename look like a shared library? if (m/.*\.so.*?/) { # Ok, do the expensive test. - my $type=`file $_`; + my $type=get_file_type($_); if ($type=~m/.*ELF.*shared.*/) { push @shared_libs, $fn; return; @@ -81,7 +92,7 @@ sub testfile { my (undef,undef,$mode,undef)=stat(_); if ($mode & 0111) { # Ok, expensive test. - my $type=`file $_`; + my $type=get_file_type($_); if ($type=~m/.*ELF.*executable.*/) { push @executables, $fn; return; @@ -11,7 +11,7 @@ use Debian::Debhelper::Dh_Lib; =head1 SYNOPSIS -B<dh_testdir> [S<I<debhelper options>>] [S<I<file ...>] +B<dh_testdir> [S<I<debhelper options>>] [S<I<file ...>>] =head1 DESCRIPTION |