Hello
My test session:
$ telnet host 24
Trying a.b.c.d...
Connected to fox.
Escape character is '^]'.
220 host DBMail LMTP service ready to rock
mail from: <[EMAIL PROTECTED]>
250 Sender <[EMAIL PROTECTED]> OK
rcpt to: <[EMAIL PROTECTED]>
250 Recipient <[EMAIL PROTECTED]> OK
data
354 Start mail input; end with <CRLF>.<CRLF>
Subject: test
test
.
Connection closed by foreign host.
Level 5 log:
Message:[server] pool.c,child_register(+294): register child [8018]
Info:[server] pool.c,child_register(+319): initializing child_state [8018]
using slot [0]
Info:[serverchild] serverchild.c,CreateChild(+194): signal handler placed,
going to perform task now
Debug:[db] dbmodule.c,db_load_driver(+67): looking for mysql
as /usr/local/lib/dbmail/libmysql.so
Debug:[sql] dbmysql.c,db_query(+272): query [SHOW VARIABLES
LIKE 'collation_%']
Debug:[sql] dbmysql.c,db_mysql_check_collations(+113): does
[collation_database:koi8r_general_ci] match
[collation_connection:koi8r_general_ci]?
Message:[server] pool.c,scoreboard_state(+527): Scoreboard state: children
[1/3], spares [1 (1 - 3)]
Debug:[auth] authmodule.c,auth_load_driver(+63): looking for auth_sql
as /usr/local/lib/dbmail/libauth_sql.so
Info:[serverchild] serverchild.c,select_and_accept(+223): waiting for
connection
Info:[serverchild] serverchild.c,select_and_accept(+255): received connection
Info:[serverchild] serverchild.c,select_and_accept(+280): connection accepted
Message:[serverchild] serverchild.c,PerformChildTask(+347): incoming
connection from [a.b.c.e] by pid [8018]
Debug:[serverchild] serverchild.c,PerformChildTask(+370): client info init
complete, calling client handler
Message:[server] pool.c,child_register(+294): register child [8036]
Info:[server] pool.c,child_register(+319): initializing child_state [8036]
using slot [1]
Info:[serverchild] serverchild.c,CreateChild(+194): signal handler placed,
going to perform task now
Debug:[db] dbmodule.c,db_load_driver(+67): looking for mysql
as /usr/local/lib/dbmail/libmysql.so
Debug:[sql] dbmysql.c,db_query(+272): query [SHOW VARIABLES
LIKE 'collation_%']
Debug:[sql] dbmysql.c,db_mysql_check_collations(+113): does
[collation_database:koi8r_general_ci] match
[collation_connection:koi8r_general_ci]?
Debug:[auth] authmodule.c,auth_load_driver(+63): looking for auth_sql
as /usr/local/lib/dbmail/libauth_sql.so
Info:[serverchild] serverchild.c,select_and_accept(+223): waiting for
connection
Message:[server] pool.c,scoreboard_state(+527): Scoreboard state: children
[2/3], spares [1 (1 - 3)]
Debug:[lmtp] lmtp.c,lmtp(+259): incoming buffer: [mail from: <[EMAIL
PROTECTED]>]
Debug:[lmtp] lmtp.c,lmtp(+273): command issued :cmd [mail], value [from:
<[EMAIL PROTECTED]>]
Debug:[lmtp] lmtp.c,lmtp(+281): command looked up as commandtype 4
Info:[misc] misc.c,find_bounded(+338): Found [EMAIL PROTECTED] of length [14]
between '<' and '>' so next skip [21]
Debug:[lmtp] lmtp.c,lmtp(+259): incoming buffer: [rcpt to: <[EMAIL PROTECTED]>]
Debug:[lmtp] lmtp.c,lmtp(+273): command issued :cmd [rcpt], value [to:
<[EMAIL PROTECTED]>]
Debug:[lmtp] lmtp.c,lmtp(+281): command looked up as commandtype 9
Info:[misc] misc.c,find_bounded(+338): Found [EMAIL PROTECTED] of length [14]
between '<' and '>' so next skip [19]
Debug:[dsn] dsn.c,dsnuser_init(+215): dsnuser initialized
Info:[dsn] dsn.c,dsnuser_resolve(+558): checking if [EMAIL PROTECTED] is a
valid
username, alias, or catchall.
Debug:[auth] authsql.c,auth_check_user_ext(+219): checking user [EMAIL
PROTECTED]
in alias table
Debug:[auth] authsql.c,auth_check_user_ext(+236): checks [0]
Debug:[sql] dbmysql.c,db_query(+272): query [SELECT deliver_to FROM
dbmail_aliases WHERE lower(alias) = lower('[EMAIL PROTECTED]') AND lower(alias)
<>
lower(deliver_to)]
Debug:[auth] authsql.c,auth_check_user_ext(+270): into checking loop
Debug:[auth] authsql.c,auth_check_user_ext(+276): checking user [EMAIL
PROTECTED] to
2
Debug:[auth] authsql.c,auth_check_user_ext(+219): checking user [2] in alias
table
Debug:[auth] authsql.c,auth_check_user_ext(+236): checks [1]
Debug:[sql] dbmysql.c,db_query(+272): query [SELECT deliver_to FROM
dbmail_aliases WHERE lower(alias) = lower('2') AND lower(alias) <>
lower(deliver_to)]
Debug:[auth] authsql.c,auth_check_user_ext(+258): adding [2] to deliver_to
address
Debug:[dsn] dsn.c,address_has_alias(+262): user [EMAIL PROTECTED] found total
of
[1] aliases
Info:[dsn] dsn.c,dsnuser_resolve(+565): delivering [EMAIL PROTECTED] as an
alias.
Debug:[lmtp] lmtp.c,lmtp(+259): incoming buffer: [data]
Debug:[lmtp] lmtp.c,lmtp(+281): command looked up as commandtype 3
Debug:[lmtp] lmtp.c,lmtp(+536): requesting sender to begin message.
Debug:[message] dbmail-message.c,_set_content_from_stream(+469): parse message
Debug:[lmtp] lmtp.c,lmtp(+567): whole message = Subject: test
test
Debug:[sql] dbmysql.c,db_query(+272): query [BEGIN]
Debug:[sql] dbmysql.c,db_query(+272): query [SELECT user_idnr FROM
dbmail_users WHERE lower(userid) = lower('[EMAIL PROTECTED]@__')]
Debug:[misc] misc.c,create_unique_id(+109): created:
b69bfddc7b32e1581ffc9bac833e5f12
Debug:[db] db.c,db_findmailbox(+2284): looking for mailbox with FQN [INBOX].
Debug:[sql] dbmysql.c,db_query(+272): query [SELECT mailbox_idnr FROM
dbmail_mailboxes WHERE name LIKE 'INBOX' AND owner_idnr=1]
Debug:[db] db.c,db_find_create_mailbox(+3117): mailbox [INBOX] found
Debug:[sql] dbmysql.c,db_query(+272): query [INSERT INTO dbmail_physmessage
(messagesize, internal_date) VALUES (0, CURRENT_TIMESTAMP)]
Debug:[sql] dbmysql.c,db_query(+272): query [INSERT INTO
dbmail_messages(mailbox_idnr, physmessage_id, unique_id,recent_flag, status)
VALUES (2, 35591, 'b69bfddc7b32e1581ffc9bac833e5f12', 1, 5)]
Debug:[sql] dbmysql.c,db_query(+272): query [SELECT physmessage_id FROM
dbmail_messages WHERE message_idnr = 73958]
Debug:[sql] dbmysql.c,db_query(+272): query [INSERT INTO dbmail_messageblks
(is_header, messageblk,blocksize, physmessage_id) VALUES (1,'Subject:
test\nReturn-Path: [EMAIL PROTECTED]: 35591\nMessage-Id:
<1162557405l.8018l.0l@(none)>\nMIME-Version: 1.0\n\n', 134, 35591)]
Debug:[message] dbmail-message.c,dbmail_message_store(+861): allocating
[524288] bytes of memory for readblock
Debug:[delivery] pipe.c,store_message_in_blocks(+477): inserting message [test
]
Debug:[sql] dbmysql.c,db_query(+272): query [SELECT physmessage_id FROM
dbmail_messages WHERE message_idnr = 73958]
Debug:[sql] dbmysql.c,db_query(+272): query [INSERT INTO dbmail_messageblks
(is_header, messageblk,blocksize, physmessage_id) VALUES (0,'test\n', 5,
35591)]
Debug:[sql] dbmysql.c,db_query(+272): query [UPDATE dbmail_messages SET
unique_id = 'b69bfddc7b32e1581ffc9bac833e5f12', status = 0 WHERE message_idnr
= 73958]
Debug:[sql] dbmysql.c,db_query(+272): query [SELECT physmessage_id FROM
dbmail_messages WHERE message_idnr = 73958]
Debug:[sql] dbmysql.c,db_query(+272): query [UPDATE dbmail_physmessage SET
messagesize = 139, rfcsize = 146 WHERE id = 35591]
Debug:[sql] dbmysql.c,db_query(+272): query [SELECT
dbmail_mailboxes.owner_idnr FROM dbmail_mailboxes, dbmail_messages WHERE
dbmail_mailboxes.mailbox_idnr = dbmail_messages.mailbox_idnr AND
dbmail_messages.message_idnr = 73958]
Debug:[db] db.c,user_idnr_is_delivery_user_idnr(+4298): looking up user_idnr
for [EMAIL PROTECTED]@__]
Debug:[sql] dbmysql.c,db_query(+272): query [SELECT user_idnr FROM
dbmail_users WHERE lower(userid) = lower('[EMAIL PROTECTED]@__')]
Debug:[sql] dbmysql.c,db_query(+272): query [SELECT id FROM dbmail_headername
WHERE headername='Subject']
That's all...
Output while running under valgrind (only part, can send all output):
Debug:[sql] dbmysql.c,db_query(+272): query [SELECT id FROM dbmail_headername
WHERE headername='Subject']
==12601== Invalid read of size 1
==12601== at 0x1B901478: strlen (mac_replace_strmem.c:243)
==12601== by 0x1B923BDC: dm_stresc (misc.c:481)
==12601== by 0x1B91227B: _header_cache (dbmail-message.c:1048)
==12601== by 0x1BA70528: g_tree_foreach
(in /usr/lib/libglib-2.0.so.0.1000.3)
==12601== by 0x1B912D55: dbmail_message_cache_headers
(dbmail-message.c:939)
==12601== by 0x1B9130FC: dbmail_message_store (dbmail-message.c:871)
==12601== by 0x1B92E1E0: insert_messages (pipe.c:541)
==12601== by 0x8049821: main (main.c:336)
==12601== Address 0x0 is not stack'd, malloc'd or (recently) free'd
==12601==
==12601== Process terminating with default action of signal 11 (SIGSEGV)
--
Oleg Lapshin