mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-06 21:00:22 +00:00
92 lines
2.6 KiB
Perl
92 lines
2.6 KiB
Perl
#
|
|
# Functions that wrap the execution of tools so that they are logged
|
|
#
|
|
# Brian Carrier [carrier@sleuthkit.org]
|
|
# Copyright (c) 2001-2005 by Brian Carrier. All rights reserved
|
|
#
|
|
# This file is part of the Autopsy Forensic Browser (Autopsy)
|
|
#
|
|
# Autopsy is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# Autopsy is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with Autopsy; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
|
|
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
|
# MERCHANTABILITY AND FITNESS FOR ANY PARTICULAR PURPOSE.
|
|
# IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
|
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
# (INCLUDING, BUT NOT LIMITED TO, LOSS OF USE, DATA, OR PROFITS OR
|
|
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
package Exec;
|
|
|
|
# exec_pipe(HANDLE, CMD);
|
|
sub exec_pipe {
|
|
my $handle = shift(@_);
|
|
my $cmd = shift(@_);
|
|
|
|
die "Can't open pipe for exec_pipe"
|
|
unless defined(my $pid = open($handle, '-|'));
|
|
|
|
if ($pid) {
|
|
return $handle;
|
|
}
|
|
else {
|
|
$| = 1;
|
|
Print::log_host_inv_exec("$cmd");
|
|
exec("$cmd") or die "Can't exec program: $!";
|
|
}
|
|
}
|
|
|
|
sub read_pipe_line {
|
|
my $handle = shift(@_);
|
|
my $out;
|
|
|
|
# for (my $i = 0; ($len = read ($handle, $$buf, $size)) && (!defined $len); $i++) {
|
|
|
|
for (my $i = 0; $i < 100; $i++) {
|
|
$out = <$handle>;
|
|
return $out if (defined $out);
|
|
}
|
|
return $out;
|
|
}
|
|
|
|
sub read_pipe_data {
|
|
my $handle = shift(@_);
|
|
my $size = shift(@_);
|
|
my $out;
|
|
my $len;
|
|
|
|
for (
|
|
my $i = 0;
|
|
($len = read($handle, $out, $size)) && (!defined $len) && ($i < 100);
|
|
$i++
|
|
)
|
|
{
|
|
}
|
|
|
|
return $out;
|
|
}
|
|
|
|
sub exec_sys {
|
|
my $cmd = shift(@_);
|
|
Print::log_host_inv_exec("$cmd");
|
|
system($cmd);
|
|
return;
|
|
}
|
|
|
|
1;
|