Changes in trunk/scripts/samhainadmin.pl.in [3:1]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/scripts/samhainadmin.pl.in
r3 r1 23 23 use Getopt::Long; 24 24 use File::Basename; 25 use File::Copy;26 25 use File::stat; 27 26 use File::Temp qw/ tempfile tempdir unlink0 /; 28 27 use IO::Handle; 29 use Fcntl qw(:DEFAULT :flock);30 28 31 29 File::Temp->safe_level( File::Temp::HIGH ); … … 38 36 my $return_from_sign = 0; 39 37 my $no_print_examine = 0; 40 my $no_remove_lock = 0;41 38 my $base = basename($0); 42 39 … … 45 42 my $daemon = "@sbindir@/@install_name@"; 46 43 my $gpg = "@mygpg@"; 47 48 $cfgfile =~ s/^REQ_FROM_SERVER//;49 $datafile =~ s/^REQ_FROM_SERVER//;50 44 51 45 $gpg = "gpg" if ($gpg eq ""); … … 192 186 193 187 my $dir = tempdir( CLEANUP => 1 ); 194 $filename = $dir . "/exa_jhfdbilw ." . $$;188 $filename = $dir . "/exa_jhfdbilw"; 195 189 open $fh, ">$filename" or die "Cannot open $filename"; 196 190 autoflush $fh 1; … … 287 281 open FH, "<$file1" or die "Cannot open file $file1 for read: $!"; 288 282 if (!($file1 =~ /^\-$/)) { 289 flock(FH, LOCK_EX) unless ($no_remove_lock == 1);290 283 my $dir = tempdir( CLEANUP => 1 ) or die "Tempdir failed"; 291 $filename = $dir . "/rem_iqegBCQb ." . $$;284 $filename = $dir . "/rem_iqegBCQb"; 292 285 open $fh, ">$filename" or die "Cannot open $filename"; 293 286 $stats = stat($file1); … … 320 313 } 321 314 if (!($file1 =~ /^\-$/)) { 322 copy("$filename", "$file1") 323 or die "Copy $filename to $file1 failed: $!"; 315 my $command = "cp $filename $file1"; 316 system ($command) == 0 317 or die "system $command failed: $?"; 324 318 chmod $stats->mode, $file1; 325 319 chown $stats->uid, $stats->gid, $file1; 326 flock(FH, LOCK_UN) unless ($no_remove_lock == 1);327 close FH;328 320 } 329 321 unlink0( $fh, $filename ) or die "Cannot unlink $filename safely"; … … 394 386 if ($file1 =~ /^\-$/) { 395 387 my $dir = tempdir( CLEANUP => 1 ) or die "Tempdir failed"; 396 $filename1 = $dir . "/sig_vs8827sd ." . $$;388 $filename1 = $dir . "/sig_vs8827sd"; 397 389 open $fh1, ">$filename1" or die "Cannot open $filename1"; 398 390 $flag1 = 1; … … 427 419 $fileout = '-'; 428 420 } else { 429 open (LOCKFILE, "<$file1") or die "Cannot open $file1: $!";430 flock(LOCKFILE, LOCK_EX);431 421 $no_print_examine = 1; 432 $no_remove_lock = 1;433 422 if (examine() < 2) { 434 423 remove(); 435 424 } 436 425 $fileout = $file1 . ".asc"; 437 $stats = stat($file1) 438 or die "No file $file1: $!"; 426 $stats = stat($file1); 439 427 } 440 428 … … 458 446 die ("Signed file is smaller than unsigned file") 459 447 unless ($st_new->size > $st_old->size); 460 move("$fileout", "$file2")461 or die " Move $fileout to $file2 failed: $!";448 system ("mv $fileout $file2") == 0 449 or die "system mv $fileout $file2 failed: $?"; 462 450 chmod $stats->mode, $file2; 463 451 chown $stats->uid, $stats->gid, $file2; 464 flock(LOCKFILE, LOCK_UN);465 452 } 466 453
Note:
See TracChangeset
for help on using the changeset viewer.