This file is indexed.

/usr/lib/debbugs/receive is in debbugs 2.4.1ubuntu1.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#!/usr/bin/perl
# $Id: receive.in,v 1.15 2003/01/28 23:52:08 cjwatson Exp $
# usage: mail is piped directly into program

#set umask in order to have group-writable incoming/*
#umask(002);

#load configuration file
$config_path = '/etc/debbugs';
#$lib_path = '/usr/lib/debbugs';

require "$config_path/config";
$ENV{'PATH'} = '/usr/lib/debbugs:'.$ENV{'PATH'};

#set source of mail delivery
#sets any prefix needed to get mailer to add it to error mail
if ( $gMailer eq 'exim' ) 
{	$gBadEmailPrefix = '';
	$_ = $ENV{'LOCAL_PART'};
} elsif ( $gMailer eq 'qmail' )
{	$gBadEmailPrefix = '//';
	$_ = $ENV{'DEFAULT'};
#	$_ = $ENV{'RECIPIENT'};
#	s/^\w+-bugs--?//;
} else 
{	$gBadEmailPrefix = '';
	$_ = $ARGV[0];
	s/\>//;
	s/\<//;
}
require("/etc/debbugs/text");

#remove everything from @ to end of line
s/\@.*$//;

#convert remaining upper case to lower case
y/A-Z/a-z/;

#set up to determine command
%withbugaddressmap= ('-submit',     'B',
                   '',            'B',
                   '-maintonly',  'M',
                   '-quiet',      'Q',
                   '-forwarded',  'F',
                   '-done',       'D',
                   '-close',      'D',
		   '-request',    'R',
                   '-submitter',  'U');

%withpkgaddressmap= ('-request',     'R');

%withoutaddressmap= ('submit',     'B',
                      'bugs',       'B',
                      'maintonly',  'M',
                      'quiet',      'Q',
                      'forwarded',  'F',
                      'done',       'D',
                      'close',      'D',
                      'request',    'R',
                      'submitter',  'U',
                      'control',    'C');

#determine command
if (s/^(\d{1,9})\b//) {
    $bugnumber= $1;
    $map= $withbugaddressmap{$_};
    $addrrec= "$bugnumber$_";
} elsif (s/^(\w+)-//) {
    $bugnumber= $1;
    $map= $withpkgaddressmap{"-$_"};
    $addrrec= "$bugnumber-$_";
} else {
    $bugnumber= '';
    $map= $withoutaddressmap{$_};
    $addrrec= "$_";
}

#print no command received
if (!defined($map)) {
    print STDERR <<ENDTEXT;
$gBadEmailPrefix
$gBadEmailPrefix Unknown $gBug service address $_\@$gEmailDomain.
$gBadEmailPrefix Recognised addresses are:
$gBadEmailPrefix
$gBadEmailPrefix     General:       Read $gBug# in Subject:    $gBug# is NNNN:
$gBadEmailPrefix
$gBadEmailPrefix      request        submit  $gBug             NNNN  NNNN-submit
$gBadEmailPrefix      control        maintonly                NNNN-maintonly
$gBadEmailPrefix      owner          quiet                    NNNN-quiet
$gBadEmailPrefix      postmaster     forwarded                NNNN-forwarded
$gBadEmailPrefix                     done  close              NNNN-done  NNNN-close
$gBadEmailPrefix                     submitter                NNNN-submitter
$gBadEmailPrefix
$gBadEmailPrefix (all \@$gEmailDomain.)
$gBadEmailPrefix
$gBadEmailPrefix For instructions via the WWW see:
$gBadEmailPrefix   http://$gWebDomain/
$gBadEmailPrefix   http://$gWebDomain/Reporting$gHTMLSuffix
$gBadEmailPrefix   http://$gWebDomain/Developer$gHTMLSuffix
$gBadEmailPrefix   http://$gWebDomain/Access$gHTMLSuffix
$gTextInstructions
$gBadEmailPrefix For details of how to access $gBug report logs by email:
$gBadEmailPrefix   send \`request\@$gEmailDomain' the word \`help'
$gBadEmailPrefix
ENDTEXT
    exit(100);
}

@months=qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
($sec,$min,$hour,$mday,$mon,$year)= gmtime(time);

$queue= "$map$bugnumber";

chdir("$gSpoolDir/incoming") || &failure("chdir to spool: $!");

$id= time.$$;
open(FILE,">T.$id") || &failure("open temporary file: $!");
printf(FILE "Received: (at %s) by $gEmailDomain; %d %s %d %02d:%02d:%02d +0000\n",
       $addrrec, $mday,$months[$mon],$year+1900, $hour,$min,$sec) ||
    &failure("write header to temporary file: $!");
while(<STDIN>) { print(FILE) || &failure("write temporary file: $!"); }
close(FILE) || &failure("close temporary file: $!");

rename("T.$id","I$queue.$id") || &failure("rename spool message: $!");

exit(0);

sub failure {
    length($id) && unlink("T.$id");
    print STDERR "bugs receive failure: @_\n";
    exit(75); # EX_TEMPFAIL
}