From a37ba2e615d3dbcaa89201d657a6a7b6790576be Mon Sep 17 00:00:00 2001 From: joey Date: Thu, 27 Dec 2001 02:22:58 +0000 Subject: [PATCH] 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 --- debian/changelog | 8 ++++++++ dh_strip | 15 +++++++++++++-- dh_testdir | 2 +- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 62afa77..43624a7 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 Wed, 26 Dec 2001 21:15:42 -0500 + debhelper (3.0.52) unstable; urgency=low * Typo, Closes: #122679 diff --git a/dh_strip b/dh_strip index 49f3723..a62e440 100755 --- a/dh_strip +++ b/dh_strip @@ -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=; + 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; diff --git a/dh_testdir b/dh_testdir index cb3acc7..f109580 100755 --- a/dh_testdir +++ b/dh_testdir @@ -11,7 +11,7 @@ use Debian::Debhelper::Dh_Lib; =head1 SYNOPSIS -B [S>] [S] +B [S>] [S>] =head1 DESCRIPTION -- 2.39.5