QMAIL a mail from <>
Radim Roženek
rozenek na vos.cz
Středa Listopad 20 14:59:55 CET 2002
Predpokladam, ze tento spam-patch je kamen urazu:
diff -cru qmail-1.03-orig/qmail-pop3d.c qmail-1.03/qmail-pop3d.c
--- qmail-1.03-orig/qmail-pop3d.c Mon Jun 15 12:53:16 1998
+++ qmail-1.03/qmail-pop3d.c Tue Jun 12 15:16:15 2001
@@ -63,6 +63,7 @@
void die_nomem() { err("out of memory"); die(); }
void die_nomaildir() { err("this user has no $HOME/Maildir"); die(); }
+void die_nomaildir1() { err("this user can't go to $HOME/Maildir");
die(); }
void die_scan() { err("unable to scan $HOME/Maildir"); die(); }
void err_syntax() { err("syntax error"); }
@@ -295,7 +296,7 @@
sig_pipeignore();
if (!argv[1]) die_nomaildir();
- if (chdir(argv[1]) == -1) die_nomaildir();
+ if (chdir(argv[1]) == -1) die_nomaildir1();
getlist();
diff -cru qmail-1.03-orig/qmail-smtpd.c qmail-1.03/qmail-smtpd.c
--- qmail-1.03-orig/qmail-smtpd.c Mon Jun 15 12:53:16 1998
+++ qmail-1.03/qmail-smtpd.c Wed Jul 4 06:42:47 2001
@@ -96,6 +96,8 @@
int bmfok = 0;
stralloc bmf = {0};
struct constmap mapbmf;
+int miplrec = 0;
+int miplsen = 0;
void setup()
{
@@ -216,7 +218,6 @@
return r;
}
-
int seenmail = 0;
int flagbarf; /* defined if seenmail */
stralloc mailfrom = {0};
@@ -245,6 +246,7 @@
if (!stralloc_copys(&rcptto,"")) die_nomem();
if (!stralloc_copys(&mailfrom,addr.s)) die_nomem();
if (!stralloc_0(&mailfrom)) die_nomem();
+ if (addrallowed()) miplsen = 1;
out("250 ok\r\n");
}
void smtp_rcpt(arg) char *arg; {
@@ -261,6 +263,7 @@
if (!stralloc_cats(&rcptto,"T")) die_nomem();
if (!stralloc_cats(&rcptto,addr.s)) die_nomem();
if (!stralloc_0(&rcptto)) die_nomem();
+ if (addrallowed()) miplrec = 1;
out("250 ok\r\n");
}
@@ -365,6 +368,14 @@
out("\r\n");
}
+int istofromlocal() {
+ int r,i;
+ r=0;
+ if (miplrec) r = 1;
+ if (miplsen) r = 1;
+ return r;
+}
+
void smtp_data() {
int hops;
unsigned long qp;
@@ -372,6 +383,7 @@
if (!seenmail) { err_wantmail(); return; }
if (!rcptto.len) { err_wantrcpt(); return; }
+ if (!istofromlocal()) { err_bmf(); return; }
seenmail = 0;
if (databytes) bytestooverflow = databytes + 1;
if (qmail_open(&qqt) == -1) { err_qqt(); return; }
Slo by patchovane soubory uvest do puvodniho stavu bez potreby preinstalace
celeho qmailu?
Radim Roženek
----- Original Message -----
From: "Ondrej Sury" <sury.ondrej na globe.cz>
To: <sendmail na linux.cz>
Sent: Wednesday, November 20, 2002 2:33 PM
Subject: Re: QMAIL a mail from <>
Radim Roženek <rozenek na vos.cz> writes:
> Bohuzel jsem tento mailserver neinstaloval ja, ale muj predchudce, ktery
byl
> odejden. Krome patche na overovani pres MySQL by nemel byt Q nijak
> patchovan, ale zpetne to tezko zjistim...
>
> Nemate nekdo potuchu v cem by mohl byt problem?
> Co muze toto zpusobit krome badmailfrom a relayingovych pravidel?
Toto vidim na chybu nekde v tom patchi... neco vam ukazu:
void err_wantmail() { out("503 MAIL first (#5.5.1)\r\n"); }
toto se pousti pri zadani MAIL FROM:
(povsimnete si seenmail = 1)
void smtp_mail(arg) char *arg;
{
if (!addrparse(arg)) { err_syntax(); return; }
flagbarf = bmfcheck();
seenmail = 1;
if (!stralloc_copys(&rcptto,"")) die_nomem();
if (!stralloc_copys(&mailfrom,addr.s)) die_nomem();
if (!stralloc_0(&mailfrom)) die_nomem();
out("250 ok\r\n");
}
toto se pousti pri RCPT TO:
void smtp_rcpt(arg) char *arg; {
if (!seenmail) { err_wantmail(); return; }
if (!addrparse(arg)) { err_syntax(); return; }
if (flagbarf) { err_bmf(); return; }
if (relayclient) {
--addr.len;
if (!stralloc_cats(&addr,relayclient)) die_nomem();
if (!stralloc_0(&addr)) die_nomem();
}
else
if (!addrallowed()) { err_nogateway(); return; }
if (!stralloc_cats(&rcptto,"T")) die_nomem();
if (!stralloc_cats(&rcptto,addr.s)) die_nomem();
if (!stralloc_0(&rcptto)) die_nomem();
out("250 ok\r\n");
}
toto se pousti pri DATA
void smtp_data() {
int hops;
unsigned long qp;
char *qqx;
if (!seenmail) { err_wantmail(); return; }
if (!rcptto.len) { err_wantrcpt(); return; }
seenmail = 0;
[...]
}
Takze pokud mate zdrojaky toho opeceneho qmailu, tak zkuste zkontrolovat,
jestli nekde v smtp_mail() nebo smtp_rcpt() a funkcich jimi volanych se
nenastavuje seenmail na 0.
O.
--
Ondrej Sury - CIO Globe Internet s.r.o. http://globe.cz/
Tel: +420(2)35365000 Fax: +420(2)35365009 Planickova 1, 162 00 Praha 6
Další informace o konferenci Sendmail