chiark
/
gitweb
/
~mdw
/
qmail
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
qmail-smtpd: Validation of recipient mailbox names.
[qmail]
/
qmail-queue.c
diff --git
a/qmail-queue.c
b/qmail-queue.c
index 26483b288015e6f4df69999d2f795a3a7fea1033..4b39a8f6faeca1233ea52bfc4b707abd64a29cbf 100644
(file)
--- a/
qmail-queue.c
+++ b/
qmail-queue.c
@@
-55,10
+55,10
@@
void cleanup()
}
void die(e) int e; { _exit(e); }
}
void die(e) int e; { _exit(e); }
-void die_write() { cleanup(); die(
122
); }
-void die_read() { cleanup(); die(
121
); }
-void sigalrm() { /* thou shalt not clean up here */ die(
124
); }
-void sigbug() { die(
10
1); }
+void die_write() { cleanup(); die(
53
); }
+void die_read() { cleanup(); die(
54
); }
+void sigalrm() { /* thou shalt not clean up here */ die(
52
); }
+void sigbug() { die(
8
1); }
unsigned int receivedlen;
char *received;
unsigned int receivedlen;
char *received;
@@
-93,7
+93,7
@@
void received_setup()
{
receivedlen = receivedfmt((char *) 0);
received = alloc(receivedlen + 1);
{
receivedlen = receivedfmt((char *) 0);
received = alloc(receivedlen + 1);
- if (!received) die(
123
);
+ if (!received) die(
51
);
receivedfmt(received);
}
receivedfmt(received);
}
@@
-123,7
+123,7
@@
int flagsplit;
char *s;
s = alloc(fmtqfn((char *) 0,dirslash,messnum,flagsplit));
char *s;
s = alloc(fmtqfn((char *) 0,dirslash,messnum,flagsplit));
- if (!s) die(
123
);
+ if (!s) die(
51
);
fmtqfn(s,dirslash,messnum,flagsplit);
return s;
}
fmtqfn(s,dirslash,messnum,flagsplit);
return s;
}
@@
-136,17
+136,17
@@
void pidopen()
seq = 1;
len = pidfmt((char *) 0,seq);
pidfn = alloc(len);
seq = 1;
len = pidfmt((char *) 0,seq);
pidfn = alloc(len);
- if (!pidfn) die(
123
);
+ if (!pidfn) die(
51
);
for (seq = 1;seq < 10;++seq)
{
for (seq = 1;seq < 10;++seq)
{
- if (pidfmt((char *) 0,seq) > len) die(
10
1); /* paranoia */
+ if (pidfmt((char *) 0,seq) > len) die(
8
1); /* paranoia */
pidfmt(pidfn,seq);
messfd = open_excl(pidfn);
if (messfd != -1) return;
}
pidfmt(pidfn,seq);
messfd = open_excl(pidfn);
if (messfd != -1) return;
}
- die(
10
3);
+ die(
6
3);
}
char tmp[FMT_ULONG];
}
char tmp[FMT_ULONG];
@@
-158,8
+158,8
@@
void main()
sig_blocknone();
umask(033);
sig_blocknone();
umask(033);
- if (chdir(auto_qmail) == -1) die(
102
);
- if (chdir("queue") == -1) die(
10
2);
+ if (chdir(auto_qmail) == -1) die(
61
);
+ if (chdir("queue") == -1) die(
6
2);
mypid = getpid();
uid = getuid();
mypid = getpid();
uid = getuid();
@@
-176,15
+176,15
@@
void main()
alarm(DEATH);
pidopen();
alarm(DEATH);
pidopen();
- if (fstat(messfd,&pidst) == -1) die(
104
);
+ if (fstat(messfd,&pidst) == -1) die(
63
);
messnum = pidst.st_ino;
messfn = fnnum("mess/",1);
todofn = fnnum("todo/",0);
intdfn = fnnum("intd/",0);
messnum = pidst.st_ino;
messfn = fnnum("mess/",1);
todofn = fnnum("todo/",0);
intdfn = fnnum("intd/",0);
- if (link(pidfn,messfn) == -1) die(
105
);
- if (unlink(pidfn) == -1) die(
105
);
+ if (link(pidfn,messfn) == -1) die(
64
);
+ if (unlink(pidfn) == -1) die(
63
);
flagmademess = 1;
substdio_fdbuf(&ssout,write,messfd,outbuf,sizeof(outbuf));
flagmademess = 1;
substdio_fdbuf(&ssout,write,messfd,outbuf,sizeof(outbuf));
@@
-202,7
+202,7
@@
void main()
if (fsync(messfd) == -1) die_write();
intdfd = open_excl(intdfn);
if (fsync(messfd) == -1) die_write();
intdfd = open_excl(intdfn);
- if (intdfd == -1) die(
108
);
+ if (intdfd == -1) die(
65
);
flagmadeintd = 1;
substdio_fdbuf(&ssout,write,intdfd,outbuf,sizeof(outbuf));
flagmadeintd = 1;
substdio_fdbuf(&ssout,write,intdfd,outbuf,sizeof(outbuf));
@@
-217,7
+217,7
@@
void main()
if (substdio_bput(&ssout,"",1) == -1) die_write();
if (substdio_get(&ssin,&ch,1) < 1) die_read();
if (substdio_bput(&ssout,"",1) == -1) die_write();
if (substdio_get(&ssin,&ch,1) < 1) die_read();
- if (ch != 'F') die(
112
);
+ if (ch != 'F') die(
91
);
if (substdio_bput(&ssout,&ch,1) == -1) die_write();
for (len = 0;len < ADDR;++len)
{
if (substdio_bput(&ssout,&ch,1) == -1) die_write();
for (len = 0;len < ADDR;++len)
{
@@
-225,7
+225,7
@@
void main()
if (substdio_put(&ssout,&ch,1) == -1) die_write();
if (!ch) break;
}
if (substdio_put(&ssout,&ch,1) == -1) die_write();
if (!ch) break;
}
- if (len >= ADDR) die(11
5
);
+ if (len >= ADDR) die(11);
if (substdio_bput(&ssout,QUEUE_EXTRA,QUEUE_EXTRALEN) == -1) die_write();
if (substdio_bput(&ssout,QUEUE_EXTRA,QUEUE_EXTRALEN) == -1) die_write();
@@
-233,7
+233,7
@@
void main()
{
if (substdio_get(&ssin,&ch,1) < 1) die_read();
if (!ch) break;
{
if (substdio_get(&ssin,&ch,1) < 1) die_read();
if (!ch) break;
- if (ch != 'T') die(
112
);
+ if (ch != 'T') die(
91
);
if (substdio_bput(&ssout,&ch,1) == -1) die_write();
for (len = 0;len < ADDR;++len)
{
if (substdio_bput(&ssout,&ch,1) == -1) die_write();
for (len = 0;len < ADDR;++len)
{
@@
-241,13
+241,13
@@
void main()
if (substdio_bput(&ssout,&ch,1) == -1) die_write();
if (!ch) break;
}
if (substdio_bput(&ssout,&ch,1) == -1) die_write();
if (!ch) break;
}
- if (len >= ADDR) die(11
5
);
+ if (len >= ADDR) die(11);
}
if (substdio_flush(&ssout) == -1) die_write();
if (fsync(intdfd) == -1) die_write();
}
if (substdio_flush(&ssout) == -1) die_write();
if (fsync(intdfd) == -1) die_write();
- if (link(intdfn,todofn) == -1) die(
10
6);
+ if (link(intdfn,todofn) == -1) die(
6
6);
triggerpull();
die(0);
triggerpull();
die(0);