Hello
> libSieve supports an early revision of this draft:
> http://www.ietf.org/internet-drafts/draft-ietf-sieve-rfc3598bis-01.txt
I try to use such sieve-script (is it correct?):
require "fileinto";
require "subaddress";
if envelope :detail "to" "spam1" {
fileinto "SPAM";}
elsif header :is "X-Spam-Flag" "YES" {
fileinto "SPAM";}
else {
fileinto "INBOX";}
But dbmail-lmtpd hangs in executing it.
Output from valgrind:
$ valgrind --leak-check=full -v \
--show-reachable=yes /usr/local/sbin/dbmail-lmtpd -n
==30312== Memcheck, a memory error detector.
==30312== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al.
==30312== Using LibVEX rev 1367, a library for dynamic binary translation.
==30312== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP.
==30312== Using valgrind-3.0.1, a dynamic binary instrumentation framework.
==30312== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al.
--30312-- Valgrind library directory: /usr/lib/valgrind
--30312-- Command line
--30312-- /usr/local/sbin/dbmail-lmtpd
--30312-- -n
--30312-- Startup, with flags:
--30312-- --leak-check=full
--30312-- -v
--30312-- --show-reachable=yes
--30312-- Contents of /proc/version:
--30312-- Linux version 2.6.15 ([EMAIL PROTECTED]) (gcc version 3.4.5) #7
PREEMPT Fri
Jan 20 12:42:50 MSK 2006
--30312-- Reading syms from /usr/local/sbin/dbmail-lmtpd (0x8048000)
--30312-- Reading syms from /lib/ld-2.3.6.so (0x1B8E4000)
--30312-- Reading syms from /usr/lib/valgrind/stage2 (0xB0000000)
--30312-- Reading suppressions file: /usr/lib/valgrind/default.supp
==30312==
--30312-- Reading syms from /usr/lib/valgrind/vg_preload_core.so (0x1B8FC000)
--30312-- Reading syms from /usr/lib/valgrind/vgpreload_memcheck.so
(0x1B8FE000)
--30312-- REDIR: 0x1B8F5CC0 (index) redirected to 0x1B901220 (index)
--30312-- REDIR: 0x1B8F5E80 (strlen) redirected to 0x1B901490 (strlen)
--30312-- Reading syms from /usr/local/lib/libdbmail.so.0.0.0 (0x1B91C000)
--30312-- Reading syms from /usr/local/lib/dbmail/libmysql.so.0.0.0
(0x1B94D000)
--30312-- Reading syms from /usr/lib/mysql/libmysqlclient.so.14.0.0
(0x1B952000)
--30312-- object doesn't have a symbol table
--30312-- Reading syms from /lib/tls/libm-2.3.6.so (0x1BA6E000)
--30312-- Reading syms from /usr/local/lib/dbmail/libsort_sieve.so.0.0.0
(0x1BA91000)
--30312-- Reading syms from /usr/local/lib/libsieve.so.1.0.5 (0x1BA97000)
--30312-- object doesn't have a symbol table
--30312-- Reading syms from /usr/local/lib/dbmail/libauth_sql.so.0.0.0
(0x1BACF000)
--30312-- Reading syms from /usr/local/lib/libgmime-2.0.so.2.1.15 (0x1BAD7000)
--30312-- Reading syms from /usr/lib/libgmodule-2.0.so.0.800.4 (0x1BB24000)
--30312-- object doesn't have a symbol table
--30312-- Reading syms from /lib/tls/libdl-2.3.6.so (0x1BB28000)
--30312-- Reading syms from /usr/lib/libgthread-2.0.so.0.800.4 (0x1BB2C000)
--30312-- object doesn't have a symbol table
--30312-- Reading syms from /lib/tls/libpthread-2.3.6.so (0x1BB30000)
--30312-- DWARF2 CFI reader: unhandled CFI instruction 0:50
--30312-- DWARF2 CFI reader: unhandled CFI instruction 0:50
--30312-- Reading syms from /usr/lib/libz.so.1.2.3 (0x1BB43000)
--30312-- object doesn't have a symbol table
--30312-- Reading syms from /lib/tls/libnsl-2.3.6.so (0x1BB55000)
--30312-- Reading syms from /usr/lib/libgobject-2.0.so.0.800.4 (0x1BB6B000)
--30312-- object doesn't have a symbol table
--30312-- Reading syms from /usr/lib/libglib-2.0.so.0.800.4 (0x1BB9F000)
--30312-- object doesn't have a symbol table
--30312-- Reading syms from /lib/tls/libcrypt-2.3.6.so (0x1BC21000)
--30312-- Reading syms from /lib/tls/libc-2.3.6.so (0x1BC4F000)
--30312-- DWARF2 CFI reader: unhandled CFI instruction 0:50
--30312-- DWARF2 CFI reader: unhandled CFI instruction 0:50
--30312-- REDIR: 0x1BCBA040 (memset) redirected to 0x1B901BE0 (memset)
--30312-- REDIR: 0x1BCBA560 (memcpy) redirected to 0x1B9017D0 (memcpy)
--30312-- REDIR: 0x1BCB9470 (rindex) redirected to 0x1B9010E0 (rindex)
--30312-- REDIR: 0x1BCB9090 (strlen) redirected to 0x1B901470 (strlen)
--30312-- REDIR: 0x1BCB41B0 (malloc) redirected to 0x1B8FF85C (malloc)
--30312-- REDIR: 0x1BCB47E0 (realloc) redirected to 0x1B900BBA (realloc)
--30312-- REDIR: 0x1BCB8B20 (strcmp) redirected to 0x1B901720 (strcmp)
--30312-- REDIR: 0x1BCB3E90 (calloc) redirected to 0x1B900B0F (calloc)
--30312-- REDIR: 0x1BCB9FB0 (memmove) redirected to 0x1B901C10 (memmove)
--30312-- REDIR: 0x1BCB89B0 (index) redirected to 0x1B9011F0 (index)
--30312-- REDIR: 0x1BCB8800 (strcat) redirected to 0x1B901280 (strcat)
--30312-- REDIR: 0x1BCB2090 (free) redirected to 0x1B900353 (free)
--30312-- REDIR: 0x1BCB93B0 (strncpy) redirected to 0x1B901590 (strncpy)
--30312-- REDIR: 0x1BCB9290 (strncmp) redirected to 0x1B9016C0 (strncmp)
--30312-- REDIR: 0x1BCBA240 (stpcpy) redirected to 0x1B9019A0 (stpcpy)
--30312-- REDIR: 0x1BCB8BB0 (strcpy) redirected to 0x1B9014D0 (strcpy)
--30312-- REDIR: 0x1BCB9DF0 (memchr) redirected to 0x1B9017A0 (memchr)
--30312-- REDIR: 0x1BCBAEB0 (strchrnul) redirected to 0x1B901C80 (strchrnul)
--30312-- Reading syms from /lib/tls/libnss_files-2.3.6.so (0x1B903000)
--30312-- REDIR: 0x1BCBADE0 (rawmemchr) redirected to 0x1B901CA0 (rawmemchr)
dbmysql.c,db_query: executing query [SELECT 1=1 FROM dbmail_physmessage LIMIT
1 OFFSET 0]
dbmysql.c,db_query: executing query [SELECT 1=1 FROM dbmail_headervalue LIMIT
1 OFFSET 0]
serverchild.c,manage_start_cli_server: client info init complete, calling
client handler
220 fox DBMail LMTP service ready to rock
mail from: <[EMAIL PROTECTED]>
lmtp(): incoming buffer: [mail from: <[EMAIL PROTECTED]>]
lmtp(): command issued :cmd [mail], value [from: <[EMAIL PROTECTED]>]
lmtp(): command looked up as commandtype 4
misc.c, find_bounded: Found [EMAIL PROTECTED] of length [14] between '<' and
'>' so next skip [21]
250 Sender <[EMAIL PROTECTED]> OK
rcpt to: <[EMAIL PROTECTED]>
lmtp(): incoming buffer: [rcpt to: <[EMAIL PROTECTED]>]
lmtp(): command issued :cmd [rcpt], value [to: <[EMAIL PROTECTED]>]
lmtp(): command looked up as commandtype 9
misc.c, find_bounded: Found [EMAIL PROTECTED] of length [20] between '<'
and '>' so next skip [25]
dsn.c, dsnuser_init: dsnuser initialized
dsn.c, dsnuser_resolve: checking if [EMAIL PROTECTED] is a valid
username, alias, or catchall.
authsql.c,auth_check_user_ext: checking user [EMAIL PROTECTED] in alias
table
authsql.c,auth_check_user_ext: checks [0]
dbmysql.c,db_query: executing query [SELECT deliver_to FROM dbmail_aliases
WHERE lower(alias) = lower('[EMAIL PROTECTED]') AND lower(alias) <>
lower(deliver_to)]
authsql.c,auth_check_user_ext: user [EMAIL PROTECTED] not in aliases table
dsn.c, address_has_alias: user [EMAIL PROTECTED] found total of [0]
aliases
authsql.c,auth_check_user_ext: checking user [EMAIL PROTECTED] in alias table
authsql.c,auth_check_user_ext: checks [0]
dbmysql.c,db_query: executing query [SELECT deliver_to FROM dbmail_aliases
WHERE lower(alias) = lower('[EMAIL PROTECTED]') AND lower(alias) <>
lower(deliver_to)]
authsql.c,auth_check_user_ext: into checking loop
authsql.c,auth_check_user_ext: checking user [EMAIL PROTECTED] to 2
authsql.c,auth_check_user_ext: checking user [2] in alias table
authsql.c,auth_check_user_ext: checks [1]
dbmysql.c,db_query: executing query [SELECT deliver_to FROM dbmail_aliases
WHERE lower(alias) = lower('2') AND lower(alias) <> lower(deliver_to)]
authsql.c,auth_check_user_ext: adding [2] to deliver_to address
dsn.c, address_has_alias_mailbox: user [EMAIL PROTECTED] found total of [1]
aliases
dsn.c, dsnuser_resolve: delivering [EMAIL PROTECTED] as an alias with
mailbox.
250 Recipient <[EMAIL PROTECTED]> OK
data
lmtp(): incoming buffer: [data]
lmtp(): command looked up as commandtype 3
main(): requesting sender to begin message.
354 Start mail input; end with <CRLF>.<CRLF>
Subject: Test
test
.
dbmail-message.c,_set_content_from_stream: parse message
lmtp.c,lmtp: whole message = Subject: Test
test
.
mime.c,mime_fetch_headers: found [1] mime headers
--30312-- REDIR: 0x1BCB9140 (strnlen) redirected to 0x1B901430 (strnlen)
(process:30312): GLib-CRITICAL **: g_string_truncate: assertion `string !=
NULL' failed
(process:30312): GLib-CRITICAL **: g_string_append_len: assertion `string !=
NULL' failed
dbmysql.c,db_query: executing query [BEGIN]
dbmysql.c,db_query: executing query [SELECT user_idnr FROM dbmail_users WHERE
lower(userid) = lower('[EMAIL PROTECTED]@__')]
misc.c,create_unique_id: created: 2048256e2b5668eecfb9a54a157807cf
dbmysql.c,db_query: executing query [SELECT mailbox_idnr FROM dbmail_mailboxes
WHERE name='INBOX' AND owner_idnr='1']
db.c, db_find_create_mailbox: mailbox [INBOX] found
dbmysql.c,db_query: executing query [INSERT INTO dbmail_physmessage
(messagesize, internal_date) VALUES ('0', CURRENT_TIMESTAMP)]
dbmysql.c,db_query: executing query [INSERT INTO dbmail_messages(mailbox_idnr,
physmessage_id, unique_id,recent_flag, status) VALUES ('2', '23422',
'2048256e2b5668eecfb9a54a157807cf', '1', '5')]
dbmysql.c,db_query: executing query [SELECT physmessage_id FROM
dbmail_messages WHERE message_idnr = '49345']
dbmysql.c,db_query: executing query [INSERT INTO dbmail_messageblks
(is_header, messageblk,blocksize, physmessage_id) VALUES ('1','Subject:
Test\nReturn-Path: [EMAIL PROTECTED]:
23422\nMessage-Id: <1140164046l.30312l.0l@(none)>\nMIME-Version: 1.0\n\n',
'135', '23422')]
dbmail-message.c,dbmail_message_store: allocating [524288] bytes of memory for
readblock
pipe.c,store_message_in_blocks: inserting message: test
.
dbmysql.c,db_query: executing query [SELECT physmessage_id FROM
dbmail_messages WHERE message_idnr = '49345']
dbmysql.c,db_query: executing query [INSERT INTO dbmail_messageblks
(is_header, messageblk,blocksize, physmessage_id) VALUES ('0','test\n.\n',
'7', '23422')]
dbmysql.c,db_query: executing query [UPDATE dbmail_messages SET unique_id =
'2048256e2b5668eecfb9a54a157807cf', status = '0' WHERE message_idnr =
'49345']
dbmysql.c,db_query: executing query [SELECT physmessage_id FROM
dbmail_messages WHERE message_idnr = '49345']
dbmysql.c,db_query: executing query [UPDATE dbmail_physmessage SET messagesize
= '142', rfcsize = '150' WHERE id = '23422']
dbmysql.c,db_query: executing 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 = '49345']
db.c,db_add_quotum_used: adding 142 to mailsize
db.c.user_idnr_is_delivery_user_idnr: looking up user_idnr for
[EMAIL PROTECTED]@__
dbmysql.c,db_query: executing query [SELECT user_idnr FROM dbmail_users WHERE
lower(userid) = lower('[EMAIL PROTECTED]@__')]
dbmysql.c,db_query: executing query [SELECT id FROM dbmail_headername WHERE
headername='Subject']
dbmysql.c,db_query: executing query [INSERT INTO dbmail_headervalue
(headername_id, physmessage_id, headervalue) VALUES (6,23422,'Test')]
dbmysql.c,db_query: executing query [SELECT id FROM dbmail_headername WHERE
headername='Return-Path']
dbmysql.c,db_query: executing query [INSERT INTO dbmail_headervalue
(headername_id, physmessage_id, headervalue) VALUES
(1,23422,'[EMAIL PROTECTED]')]
dbmysql.c,db_query: executing query [SELECT id FROM dbmail_headername WHERE
headername='X-DBMail-PhysMessage-ID']
dbmysql.c,db_query: executing query [INSERT INTO dbmail_headervalue
(headername_id, physmessage_id, headervalue) VALUES (13,23422,'23422')]
dbmysql.c,db_query: executing query [SELECT id FROM dbmail_headername WHERE
headername='Message-Id']
dbmysql.c,db_query: executing query [INSERT INTO dbmail_headervalue
(headername_id, physmessage_id, headervalue) VALUES
(7,23422,'<1140164046l.30312l.0l@(none)>')]
dbmysql.c,db_query: executing query [INSERT INTO dbmail_datefield
(physmessage_id, datefield) VALUES (23422,'1970-01-01 00:00:00')]
dbmysql.c,db_query: executing query [INSERT INTO dbmail_subjectfield
(physmessage_id, subjectfield) VALUES (23422,'Test')]
pipe.c, insert_messages: temporary msgidnr is [49345]
pipe.c, insert_messages: calling sort_and_deliver for useridnr [2]
misc.c, find_bounded: Found [spam1] of length [5] between '+' and '@' so next
skip [9]
dbmysql.c,db_query: executing query [SELECT name from dbmail_sievescripts
where owner_idnr = 2 and active = 1]
dbmysql.c,db_query: executing query [SELECT script from dbmail_sievescripts
where owner_idnr = '2' and name = 'spam1']
==30312== Invalid read of size 4
==30312== at 0x1B926FF9: dbmail_message_get_envelope (dbmail-message.c:393)
==30312== by 0x1BA929ED: sort_getenvelope (sortsieve.c:306)
==30312== by 0x1BAA97BE: libsieve_do_getenvelope
(in /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BAA64E1: (within /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BAA68A9: libsieve_eval
(in /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BAA7FFB: sieve2_execute
(in /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BA92EF3: sort_process (sortsieve.c:510)
==30312== Address 0x4 is not stack'd, malloc'd or (recently) free'd
--30312-- discard syms at 0x1B903000-0x1B90E000
in /lib/tls/libnss_files-2.3.6.so due to munmap()
==30312==
==30312== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 52 from 3)
==30312==
==30312== 1 errors in context 1 of 1:
==30312== Invalid read of size 4
==30312== at 0x1B926FF9: dbmail_message_get_envelope (dbmail-message.c:393)
==30312== by 0x1BA929ED: sort_getenvelope (sortsieve.c:306)
==30312== by 0x1BAA97BE: libsieve_do_getenvelope
(in /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BAA64E1: (within /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BAA68A9: libsieve_eval
(in /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BAA7FFB: sieve2_execute
(in /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BA92EF3: sort_process (sortsieve.c:510)
==30312== Address 0x4 is not stack'd, malloc'd or (recently) free'd
--30312--
--30312-- supp: 3 index-not-intercepted-early-enough-HACK-2
--30312-- supp: 47 dl_relocate_object
--30312-- supp: 2 strlen/*dl_map_object*(Cond)
==30312==
==30312== IN SUMMARY: 1 errors from 1 contexts (suppressed: 52 from 3)
==30312==
==30312== malloc/free: in use at exit: 166944 bytes in 899 blocks.
==30312== malloc/free: 3939 allocs, 3040 frees, 6265093 bytes allocated.
==30312==
==30312== searching for pointers to 899 not-freed blocks.
==30312== checked 1626584 bytes.
==30312==
==30312==
==30312== 8 bytes in 1 blocks are still reachable in loss record 1 of 21
==30312== at 0x1B8FF8DB: malloc (vg_replace_malloc.c:149)
==30312== by 0x1B93CC0D: dsnuser_init (dsn.c:205)
==30312== by 0x8049CC2: lmtp (lmtp.c:510)
==30312== by 0x804A2A3: lmtp_handle_connection (lmtp.c:190)
==30312== by 0x1B939D36: manage_start_cli_server (serverchild.c:410)
==30312== by 0x1B938C86: StartCliServer (server.c:99)
==30312== by 0x804AD85: main (lmtpd.c:126)
==30312==
==30312==
==30312== 8 bytes in 1 blocks are still reachable in loss record 2 of 21
==30312== at 0x1B8FF8DB: malloc (vg_replace_malloc.c:149)
==30312== by 0x1B93CBF4: dsnuser_init (dsn.c:202)
==30312== by 0x8049CC2: lmtp (lmtp.c:510)
==30312== by 0x804A2A3: lmtp_handle_connection (lmtp.c:190)
==30312== by 0x1B939D36: manage_start_cli_server (serverchild.c:410)
==30312== by 0x1B938C86: StartCliServer (server.c:99)
==30312== by 0x804AD85: main (lmtpd.c:126)
==30312==
==30312==
==30312== 15 bytes in 1 blocks are definitely lost in loss record 3 of 21
==30312== at 0x1B8FF8DB: malloc (vg_replace_malloc.c:149)
==30312== by 0x1B9367F0: find_bounded (misc.c:453)
==30312== by 0x8049D9E: lmtp (lmtp.c:411)
==30312== by 0x804A2A3: lmtp_handle_connection (lmtp.c:190)
==30312== by 0x1B939D36: manage_start_cli_server (serverchild.c:410)
==30312== by 0x1B938C86: StartCliServer (server.c:99)
==30312== by 0x804AD85: main (lmtpd.c:126)
==30312==
==30312==
==30312== 24 bytes in 1 blocks are still reachable in loss record 4 of 21
==30312== at 0x1B8FF8DB: malloc (vg_replace_malloc.c:149)
==30312== by 0x1BA92E9F: sort_process (sortsieve.c:497)
==30312==
==30312==
==30312== 27 bytes in 2 blocks are still reachable in loss record 5 of 21
==30312== at 0x1B8FF8DB: malloc (vg_replace_malloc.c:149)
==30312== by 0x1B9367F0: find_bounded (misc.c:453)
==30312== by 0x1B93D864: sort_and_deliver (sort.c:38)
==30312== by 0x1B93B83C: insert_messages (pipe.c:485)
==30312== by 0x8049EB7: lmtp (lmtp.c:619)
==30312== by 0x804A2A3: lmtp_handle_connection (lmtp.c:190)
==30312== by 0x1B939D36: manage_start_cli_server (serverchild.c:410)
==30312== by 0x1B938C86: StartCliServer (server.c:99)
==30312== by 0x804AD85: main (lmtpd.c:126)
==30312==
==30312==
==30312== 32 bytes in 1 blocks are still reachable in loss record 6 of 21
==30312== at 0x1B8FF8DB: malloc (vg_replace_malloc.c:149)
==30312== by 0x1BA92C8F: sort_startup (sortsieve.c:404)
==30312== by 0xDE3EB7: ???
==30312==
==30312==
==30312== 188 bytes in 2 blocks are still reachable in loss record 7 of 21
==30312== at 0x1B8FF8DB: malloc (vg_replace_malloc.c:149)
==30312== by 0x1B92C544: dm_strdup (debug.c:195)
==30312== by 0x1B92DF5B: db_get_sievescript_byname (db.c:507)
==30312== by 0x1BA92879: sort_getscript (sortsieve.c:268)
==30312==
==30312==
==30312== 512 bytes in 1 blocks are still reachable in loss record 8 of 21
==30312== at 0x1B8FF8DB: malloc (vg_replace_malloc.c:149)
==30312== by 0x804A115: lmtp_handle_connection (lmtp.c:128)
==30312== by 0x1B939D36: manage_start_cli_server (serverchild.c:410)
==30312== by 0x1B938C86: StartCliServer (server.c:99)
==30312== by 0x804AD85: main (lmtpd.c:126)
==30312==
==30312==
==30312== 800 bytes in 20 blocks are possibly lost in loss record 9 of 21
==30312== at 0x1B900B95: calloc (vg_replace_malloc.c:279)
==30312== by 0x1BBCA64E: g_malloc0 (in /usr/lib/libglib-2.0.so.0.800.4)
==30312== by 0x1BB86B86: (within /usr/lib/libgobject-2.0.so.0.800.4)
==30312== by 0x1BB86EE5: (within /usr/lib/libgobject-2.0.so.0.800.4)
==30312== by 0x1BB8E471: g_type_init_with_debug_flags
(in /usr/lib/libgobject-2.0.so.0.800.4)
==30312== by 0x1BB8E591: g_type_init
(in /usr/lib/libgobject-2.0.so.0.800.4)
==30312== by 0x1BAE2764: g_mime_init (gmime.c:52)
==30312== by 0x804AB5E: main (lmtpd.c:75)
==30312==
==30312==
==30312== 1056 bytes in 5 blocks are definitely lost in loss record 10 of 21
==30312== at 0x1B8FF8DB: malloc (vg_replace_malloc.c:149)
==30312== by 0x1B900BFE: realloc (vg_replace_malloc.c:306)
==30312== by 0x1BBCA6D0: g_realloc (in /usr/lib/libglib-2.0.so.0.800.4)
==30312== by 0x1BBDD6D8: (within /usr/lib/libglib-2.0.so.0.800.4)
==30312== by 0x1BBDD7B1: g_string_sized_new
(in /usr/lib/libglib-2.0.so.0.800.4)
==30312== by 0x1BBDD88D: g_string_new (in /usr/lib/libglib-2.0.so.0.800.4)
==30312== by 0x1B926789: g_mime_object_get_body (dbmail-message.c:73)
==30312== by 0x1B9270FF: dbmail_message_body_to_string
(dbmail-message.c:444)
==30312== by 0x1B927141: dbmail_message_hdrs_to_string
(dbmail-message.c:451)
==30312== by 0x1B93B510: insert_messages (pipe.c:460)
==30312== by 0x8049EB7: lmtp (lmtp.c:619)
==30312== by 0x804A2A3: lmtp_handle_connection (lmtp.c:190)
==30312==
==30312==
==30312== 1056 bytes in 5 blocks are definitely lost in loss record 11 of 21
==30312== at 0x1B900C75: realloc (vg_replace_malloc.c:306)
==30312== by 0x1BBCA6D0: g_realloc (in /usr/lib/libglib-2.0.so.0.800.4)
==30312== by 0x1BBABB0C: (within /usr/lib/libglib-2.0.so.0.800.4)
==30312== by 0x1BBAB710: g_array_set_size
(in /usr/lib/libglib-2.0.so.0.800.4)
==30312== by 0x1BBAC42A: g_byte_array_set_size
(in /usr/lib/libglib-2.0.so.0.800.4)
==30312== by 0x1BB01F09: stream_write (gmime-stream-mem.c:150)
==30312== by 0x1BAFDF3B: g_mime_stream_write (gmime-stream.c:197)
==30312== by 0x1BAFE616: g_mime_stream_write_string (gmime-stream.c:499)
==30312== by 0x1BAF0AD2: message_write_to_stream (gmime-message.c:813)
==30312== by 0x1BAF70AC: g_mime_object_write_to_stream (gmime-object.c:660)
==30312== by 0x1BAF7179: g_mime_object_to_string (gmime-object.c:686)
==30312== by 0x1B9270BF: dbmail_message_to_string (dbmail-message.c:440)
==30312==
==30312==
==30312== 2300 bytes in 11 blocks are still reachable in loss record 12 of 21
==30312== at 0x1B900C75: realloc (vg_replace_malloc.c:306)
==30312== by 0x1BBCA6D0: g_realloc (in /usr/lib/libglib-2.0.so.0.800.4)
==30312== by 0x1BB720E7: (within /usr/lib/libgobject-2.0.so.0.800.4)
==30312== by 0x1BB71EB7: (within /usr/lib/libgobject-2.0.so.0.800.4)
==30312== by 0x1BB716DA: g_boxed_type_register_static
(in /usr/lib/libgobject-2.0.so.0.800.4)
==30312== by 0x1BB712B6: g_value_array_get_type
(in /usr/lib/libgobject-2.0.so.0.800.4)
==30312== by 0x1BB7D88E: (within /usr/lib/libgobject-2.0.so.0.800.4)
==30312== by 0x1BB8E548: g_type_init_with_debug_flags
(in /usr/lib/libgobject-2.0.so.0.800.4)
==30312== by 0x1BB8E591: g_type_init
(in /usr/lib/libgobject-2.0.so.0.800.4)
==30312== by 0x1BAE2764: g_mime_init (gmime.c:52)
==30312== by 0x804AB5E: main (lmtpd.c:75)
==30312==
==30312==
==30312== 3068 bytes in 68 blocks are still reachable in loss record 13 of 21
==30312== at 0x1B8FF8DB: malloc (vg_replace_malloc.c:149)
==30312== by 0x1B900BFE: realloc (vg_replace_malloc.c:306)
==30312== by 0x1BBCA6D0: g_realloc (in /usr/lib/libglib-2.0.so.0.800.4)
==30312== by 0x1BBB18CA: (within /usr/lib/libglib-2.0.so.0.800.4)
==30312== by 0x1BBB16F7: g_quark_from_static_string
(in /usr/lib/libglib-2.0.so.0.800.4)
==30312== by 0x1BB8E401: g_type_init_with_debug_flags
(in /usr/lib/libgobject-2.0.so.0.800.4)
==30312== by 0x1BB8E591: g_type_init
(in /usr/lib/libgobject-2.0.so.0.800.4)
==30312== by 0x1BAE2764: g_mime_init (gmime.c:52)
==30312== by 0x804AB5E: main (lmtpd.c:75)
==30312==
==30312==
==30312== 8427 bytes in 7 blocks are still reachable in loss record 14 of 21
==30312== at 0x1B8FF8DB: malloc (vg_replace_malloc.c:149)
==30312== by 0x1B965B5D: my_malloc
(in /usr/lib/mysql/libmysqlclient.so.14.0.0)
==30312== by 0x1B98B188: vio_new
(in /usr/lib/mysql/libmysqlclient.so.14.0.0)
==30312== by 0x1B988A9A: mysql_real_connect
(in /usr/lib/mysql/libmysqlclient.so.14.0.0)
==30312== by 0x1B94DF2E: db_connect (dbmysql.c:97)
==30312==
==30312==
==30312== 12035 bytes in 274 blocks are still reachable in loss record 15 of
21
==30312== at 0x1B900B95: calloc (vg_replace_malloc.c:279)
==30312== by 0x1BBCA64E: g_malloc0 (in /usr/lib/libglib-2.0.so.0.800.4)
==30312== by 0x1BB88071: (within /usr/lib/libgobject-2.0.so.0.800.4)
==30312== by 0x1BB8E4F3: g_type_init_with_debug_flags
(in /usr/lib/libgobject-2.0.so.0.800.4)
==30312== by 0x1BB8E591: g_type_init
(in /usr/lib/libgobject-2.0.so.0.800.4)
==30312== by 0x1BAE2764: g_mime_init (gmime.c:52)
==30312== by 0x804AB5E: main (lmtpd.c:75)
==30312==
==30312==
==30312== 16426 bytes in 2 blocks are still reachable in loss record 16 of 21
==30312== at 0x1B8FF8DB: malloc (vg_replace_malloc.c:149)
==30312== by 0x1BAA5085: (within /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BAA4CF1: libsieve_header_create_buffer
(in /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BAA4BA8: libsieve_headerrestart
(in /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BAA51F9: libsieve_headerlexalloc
(in /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BAA7AAE: sieve2_alloc (in /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BA92BDF: sort_startup (sortsieve.c:389)
==30312== by 0xDE3EB7: ???
==30312==
==30312==
==30312== 16426 bytes in 2 blocks are still reachable in loss record 17 of 21
==30312== at 0x1B8FF8DB: malloc (vg_replace_malloc.c:149)
==30312== by 0x1BAA2D85: (within /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BAA29F1: libsieve_sieve_create_buffer
(in /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BAA28A8: libsieve_sieverestart
(in /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BAA2EB9: libsieve_sievelexalloc
(in /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BAA7AA9: sieve2_alloc (in /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BA92BDF: sort_startup (sortsieve.c:389)
==30312== by 0xDE3EB7: ???
==30312==
==30312==
==30312== 16426 bytes in 2 blocks are still reachable in loss record 18 of 21
==30312== at 0x1B8FF8DB: malloc (vg_replace_malloc.c:149)
==30312== by 0x1BA9E4B1: (within /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BA9E11D: libsieve_addr_create_buffer
(in /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BA9DFD4: libsieve_addrrestart
(in /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BA9E625: libsieve_addrlexalloc
(in /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BAA7AA4: sieve2_alloc (in /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BA92BDF: sort_startup (sortsieve.c:389)
==30312== by 0xDE3EB7: ???
==30312==
==30312==
==30312== 21089 bytes in 30 blocks are still reachable in loss record 19 of 21
==30312== at 0x1B8FF8DB: malloc (vg_replace_malloc.c:149)
==30312== by 0x1BA9B1DE: libsieve_malloc
(in /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BAA7A6C: sieve2_alloc (in /usr/local/lib/libsieve.so.1.0.5)
==30312== by 0x1BA92BDF: sort_startup (sortsieve.c:389)
==30312== by 0xDE3EB7: ???
==30312==
==30312==
==30312== 26141 bytes in 453 blocks are still reachable in loss record 20 of
21
==30312== at 0x1B8FF8DB: malloc (vg_replace_malloc.c:149)
==30312== by 0x1BBCA5C6: g_malloc (in /usr/lib/libglib-2.0.so.0.800.4)
==30312== by 0x1BBB6B9E: g_hash_table_new_full
(in /usr/lib/libglib-2.0.so.0.800.4)
==30312== by 0x1BBB6B73: g_hash_table_new
(in /usr/lib/libglib-2.0.so.0.800.4)
==30312== by 0x1BBB1719: g_quark_from_static_string
(in /usr/lib/libglib-2.0.so.0.800.4)
==30312== by 0x1BB8E401: g_type_init_with_debug_flags
(in /usr/lib/libgobject-2.0.so.0.800.4)
==30312== by 0x1BB8E591: g_type_init
(in /usr/lib/libgobject-2.0.so.0.800.4)
==30312== by 0x1BAE2764: g_mime_init (gmime.c:52)
==30312== by 0x804AB5E: main (lmtpd.c:75)
==30312==
==30312==
==30312== 40880 bytes in 10 blocks are still reachable in loss record 21 of 21
==30312== at 0x1B8FF8DB: malloc (vg_replace_malloc.c:149)
==30312== by 0x1B96BE0A: my_once_alloc
(in /usr/lib/mysql/libmysqlclient.so.14.0.0)
==30312== by 0x1B96D598: (within /usr/lib/mysql/libmysqlclient.so.14.0.0)
==30312== by 0x1B96D407: get_charset_by_csname
(in /usr/lib/mysql/libmysqlclient.so.14.0.0)
==30312== by 0x1B988110: mysql_real_connect
(in /usr/lib/mysql/libmysqlclient.so.14.0.0)
==30312== by 0x1B94DF2E: db_connect (dbmysql.c:97)
==30312==
==30312== LEAK SUMMARY:
==30312== definitely lost: 2127 bytes in 11 blocks.
==30312== possibly lost: 800 bytes in 20 blocks.
==30312== still reachable: 164017 bytes in 868 blocks.
==30312== suppressed: 0 bytes in 0 blocks.
--30312-- memcheck: sanity checks: 174 cheap, 7 expensive
--30312-- memcheck: auxmaps: 0 auxmap entries (0k, 0M) in use
--30312-- memcheck: auxmaps: 0 searches, 0 comparisons
--30312-- memcheck: secondaries: 89 issued (5696k, 5M)
--30312-- memcheck: secondaries: 43 accessible and distinguished (2752k, 2M)
--30312-- tt/tc: 31151 tt lookups requiring 36675 probes
--30312-- tt/tc: 31151 fast-cache updates, 5 flushes
--30312-- translate: new 12292 (257461 -> 4140514; ratio 160:10) [0
scs]
--30312-- translate: dumped 0 (0 -> ??)
--30312-- translate: discarded 125 (2116 -> ??)
--30312-- scheduler: 8733673 jumps (bb entries).
--30312-- scheduler: 174/26754 major/minor sched events.
--30312-- sanity: 175 cheap, 7 expensive checks.
--30312-- exectx: 4999 lists, 3128 contexts (avg 0 per list)
--30312-- exectx: 7017 searches, 4868 full compares (693 per 1000)
--30312-- exectx: 8018 cmp2, 146 cmp4, 0 cmpAll
--
Oleg Lapshin