[Henrique de Moraes Holschuh]
> Exactly.  Banging out with an error in update-rc.d if anything tries
> that is the right thing to do.

Perhaps something like this is a good idea:

--- debian/sysv-rc/sbin/update-rc.d     2007-12-15 23:58:51.000000000 +0100
+++ debian/sysv-rc/sbin/update-rc.d     2007-12-15 23:57:19.000000000 +0100
@@ -44,6 +44,12 @@
 
 &usage() if ($#ARGV < 1);
 my $bn = shift @ARGV;
+
+unless ($bn =~ m/[a-zA-Z0-9+.-]+/) {
+    print STDERR "update-rc.d: illegal character in basename '$bn'\n";
+    exit (1);
+}
+
 if ($ARGV[0] ne 'remove') {
     if (! -f "$initd/$bn") {
        print STDERR "update-rc.d: $initd/$bn: file does not exist\n";
@@ -103,8 +109,10 @@
            die("update-rc.d: chdir $etcd$i.d: $!\n");
        }
        opendir(DIR, ".");
+       my $saveBN=$bn;
+       $saveBN =~ s/\+/\\+/g;
        foreach $_ (readdir(DIR)) {
-           next unless (/^[SK]\d\d$bn$/);
+           next unless (/^[SK]\d\d$saveBN$/);
            $fn = "$etcd$i.d/$_";
            $found = 1;
            $islnk = &is_link ($_[0], $fn, $bn);

The patch is completely untested.

Happy hacking,
-- 
Petter Reinholdtsen



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to