From b8a801583778dee5b9075e938ed318d17c63a162 Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Tue, 28 Aug 2001 09:38:02 +0000 Subject: security fix and various --- perl-install/bootloader.pm | 1 + perl-install/c/stuff.xs.pm | 13 +++++++++++++ perl-install/standalone/drakboot | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/perl-install/bootloader.pm b/perl-install/bootloader.pm index 2cd02125e..df680587f 100644 --- a/perl-install/bootloader.pm +++ b/perl-install/bootloader.pm @@ -992,6 +992,7 @@ sub install { my %l = grep_each { $::b } %{$lilo->{methods}}; my @rcs = map { + c::is_secure_file('/tmp/.error') or die "can't ensure a safe /tmp/.error"; my $f = $bootloader::{"install_$_"} or die "unknown bootloader method $_"; eval { $f->(@_) }; $@; diff --git a/perl-install/c/stuff.xs.pm b/perl-install/c/stuff.xs.pm index d0e5bf2a5..f6e63a85d 100644 --- a/perl-install/c/stuff.xs.pm +++ b/perl-install/c/stuff.xs.pm @@ -156,6 +156,19 @@ setMouseLive(display, type, emulate3buttons) print ' +int +is_secure_file(filename) + char * filename + CODE: + { + int fd; + unlink(filename); /* in case it exists and we manage to remove it */ + RETVAL = (fd = open(filename, O_RDWR | O_CREAT | O_EXCL, 0600)) != -1; + if (RETVAL) close(fd); + } + OUTPUT: + RETVAL + int is_ext3(device_name) char * device_name diff --git a/perl-install/standalone/drakboot b/perl-install/standalone/drakboot index dc63f22a7..8a17b4813 100755 --- a/perl-install/standalone/drakboot +++ b/perl-install/standalone/drakboot @@ -22,7 +22,7 @@ $::expert = /-expert/; my $in = 'interactive'->vnew('su', 'bootloader'); -require 'bootlook.pm' if ref($in) =~ /gtk/; +require 'bootlook.pm' if $in->isa('interactive_gtk'); lilo_choice(); -- cgit v1.2.1