I have made patches to address 2 issues with the current cvs version of
dbmail:
1) in db.c, db_list_mailboxes_by_regex, if there are mailboxes, but none
match the pattern, no check is made and a realloc occurs asking for 0 bytes
memory, resulting in a NULL pointer returned. The patch corrects this
behavior by returning a 0 if the number of matching mailboxes is 0.
2) In MySQL, there is a great performance penalty when calling
mysql_data_seek. The normal MySQL behavior would be to call mysql_fetch_row
repeatedly for each subsequent row. The patch changes the calls to
mysql_data_seek to use mysql_fetch_row, or the last row fetched whenever
possible, and otherwise use the seek. I'm handling mailboxes with 1000's of
rows, and this make a huge difference.
Alex Wheeler
Sr. Systems Engineer
Royall & Company
1920 East Parham Road
RIchmond, VA 23228
http://www.royall.com <http://www.royall.com>
mailto:awheeler@royall.com <mailto:awheeler@royall.com>
(804)741-8965 (Office)
(804)741-8969 (Fax)
dbmail:
1) in db.c, db_list_mailboxes_by_regex, if there are mailboxes, but none
match the pattern, no check is made and a realloc occurs asking for 0 bytes
memory, resulting in a NULL pointer returned. The patch corrects this
behavior by returning a 0 if the number of matching mailboxes is 0.
2) In MySQL, there is a great performance penalty when calling
mysql_data_seek. The normal MySQL behavior would be to call mysql_fetch_row
repeatedly for each subsequent row. The patch changes the calls to
mysql_data_seek to use mysql_fetch_row, or the last row fetched whenever
possible, and otherwise use the seek. I'm handling mailboxes with 1000's of
rows, and this make a huge difference.
Alex Wheeler
Sr. Systems Engineer
Royall & Company
1920 East Parham Road
RIchmond, VA 23228
http://www.royall.com <http://www.royall.com>
mailto:awheeler@royall.com <mailto:awheeler@royall.com>
(804)741-8965 (Office)
(804)741-8969 (Fax)