|
List Info
Thread: Segmentation fault in dbmail-users and dbmail-util
|
|
| Segmentation fault in dbmail-users and
dbmail-util |
  Germany |
2007-08-07 04:43:17 |
Hi,
I want to have one symbolic name delivering mails to more
than one user.
I'm not willing to set an alias to each individual
recipient. Instead it
seams to be easier to have only one
dbmail-users -x thegroup example.com -t memberA example.com,memberB example.com ...
and manage the membership at this forward adress. But in my
tests I got
Segmentation fault both in
'dbmail-users -l' and 'dbmail-util -ay' (witch runs from
cron)
Hase anyone maybe got a hint, where did I go wrong?
(I built a debian package from the download version
dbmail-2.2.6-rc1
just as dpkg-buildpackage both on a 32 and a 64 bit
debian/etch platform
an got no build-errors.)
I'm doing this simple test:
$ zcat
/usr/share/doc/dbmail/examples/create_tables.sqlite.gz |
sqlite3
mail.db
$ dbmail-users -a user1 -s user1 example.com
Adding INBOX for new user... ok.
[user1 example.com]
Done
user1 :4:0:
0.00:0.00:user1 example.com
$ dbmail-users -a user2 -s user2 example.com
Adding INBOX for new user... ok.
[user2 example.com]
Done
user2 :5:0:
0.00:0.00:user2 example.com
$ dbmail-users -x both example.com -t
user1 example.com,user2 example.com
[user1 example.com]
[user2 example.com]
Done
$ dbmail-users -l
-- users --
__ !internal_delivery_user! __ :1:0:
0.00:0.00:
__public__ :3:0:
0.00:0.00:
anyone :2:0:
0.00:0.00:
user1 :4:0:
0.00:0.00:user1 example.com
user2 :5:0:
0.00:0.00:user2 example.com
-- forwards --
Segmentation fault
With
TRACE_STDERR = 5
Its looks like
...snipp...
user2 :5:0:
0.00:0.00:user2 example.com
-- forwards --
Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[sql]
dbsqlite.c,db_query(+340): SELECT alias FROM dbmail_aliases
ORDER BY
alias
Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[db]
dbmodule.c,db_query(+145): last query took [0] seconds
Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
authsql.c,auth_check_user_ext(+222): checking user [both example.com] in
alias table
Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
authsql.c,auth_check_user_ext(+239): checks [0]
Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[sql]
dbsqlite.c,db_query(+340): SELECT deliver_to FROM
dbmail_aliases WHERE
lower(alias) = lower('both example.com') AND
lower(alias) <>
lower(deliver_to)
Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[db]
dbmodule.c,db_query(+145): last query took [0] seconds
Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
authsql.c,auth_check_user_ext(+273): into checking loop
Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
authsql.c,auth_check_user_ext(+279): checking user both example.com to
user1 example.com
Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
authsql.c,auth_check_user_ext(+222): checking user
[user1 example.com]
in alias table
Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
authsql.c,auth_check_user_ext(+239): checks [1]
Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[sql]
dbsqlite.c,db_query(+340): SELECT deliver_to FROM
dbmail_aliases WHERE
lower(alias) = lower('user1 example.com') AND
lower(alias) <>
lower(deliver_to)
Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[db]
dbmodule.c,db_query(+145): last query took [0] seconds
Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
authsql.c,auth_check_user_ext(+273): into checking loop
Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
authsql.c,auth_check_user_ext(+279): checking user user1 example.com to
4
Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
authsql.c,auth_check_user_ext(+222): checking user [4] in
alias table
Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
authsql.c,auth_check_user_ext(+239): checks [2]
Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[sql]
dbsqlite.c,db_query(+340): SELECT deliver_to FROM
dbmail_aliases WHERE
lower(alias) = lower('4') AND lower(alias) <>
lower(deliver_to)
Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[db]
dbmodule.c,db_query(+145): last query took [0] seconds
Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
authsql.c,auth_check_user_ext(+261): adding [4] to
deliver_to address
Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
authsql.c,auth_check_user_ext(+279): checking user both example.com to
(null)
Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
authsql.c,auth_check_user_ext(+222): checking user [(null)]
in alias
table
Segmentation fault
so it seams auth_check_user_ext is forgotting user2
--
Peter Hochgemuth <Peter.Hochgemuth pobox.com>
_______________________________________________
DBmail mailing list
DBmail dbmail.org
htt
ps://mailman.fastxs.nl/mailman/listinfo/dbmail
|
|
| Re: Segmentation fault in dbmail-users
and dbmail-util |

|
2007-08-07 12:33:26 |
If you're not willing to set an alias to each recipient,
then you're not
going to get what you want from DBmail. That is how it
handles delivey
lists.
_______________________________________________
DBmail mailing list
DBmail dbmail.org
htt
ps://mailman.fastxs.nl/mailman/listinfo/dbmail
|
|
| Re: Segmentation fault in dbmail-users
and dbmail-util |
  Germany |
2007-08-07 15:03:06 |
Ok, forget about my intention. The problem is worse:
$ dbmail-users -x A example.org -t o1 example.org,o2 example.org
$ dbmail-users -l
-- users --
__ !internal_delivery_user! __ :1:0:
0.00:0.00:
__public__ :3:0:
0.00:0.00:
anyone :2:0:
0.00:0.00:
-- forwards --
Segmentation fault
Where comes this Segmentation fault from?
Am Dienstag, den 07.08.2007, 10:33 -0700 schrieb Blake
Mitchell:
> If you're not willing to set an alias to each
recipient, then you're not
> going to get what you want from DBmail. That is how it
handles delivey
> lists.
_______________________________________________
DBmail mailing list
DBmail dbmail.org
htt
ps://mailman.fastxs.nl/mailman/listinfo/dbmail
|
|
| Re: Segmentation fault in dbmail-users
and dbmail-util |
  United States |
2007-08-08 02:03:26 |
I rewrote auth_check_user_ext a little bit. I'll try to find
time to put
the code through some testing this week and check it into
SVN.
Aaron
On Tue, 2007-08-07 at 11:43 +0200, Peter Hochgemuth wrote:
> Hi,
> I want to have one symbolic name delivering mails to
more than one user.
> I'm not willing to set an alias to each individual
recipient. Instead it
> seams to be easier to have only one
> dbmail-users -x thegroup example.com -t memberA example.com,memberB example.com ...
> and manage the membership at this forward adress. But
in my tests I got
> Segmentation fault both in
> 'dbmail-users -l' and 'dbmail-util -ay' (witch runs
from cron)
>
> Hase anyone maybe got a hint, where did I go wrong?
>
> (I built a debian package from the download version
dbmail-2.2.6-rc1
> just as dpkg-buildpackage both on a 32 and a 64 bit
debian/etch platform
> an got no build-errors.)
>
> I'm doing this simple test:
>
> $ zcat
/usr/share/doc/dbmail/examples/create_tables.sqlite.gz |
sqlite3
> mail.db
> $ dbmail-users -a user1 -s user1 example.com
> Adding INBOX for new user... ok.
> [user1 example.com]
> Done
> user1 :4:0:
0.00:0.00:user1 example.com
> $ dbmail-users -a user2 -s user2 example.com
> Adding INBOX for new user... ok.
> [user2 example.com]
> Done
> user2 :5:0:
0.00:0.00:user2 example.com
> $ dbmail-users -x both example.com -t
> user1 example.com,user2 example.com
> [user1 example.com]
> [user2 example.com]
> Done
> $ dbmail-users -l
> -- users --
> __ !internal_delivery_user! __ :1:0:
0.00:0.00:
> __public__ :3:0:
0.00:0.00:
> anyone :2:0:
0.00:0.00:
> user1 :4:0:
0.00:0.00:user1 example.com
> user2 :5:0:
0.00:0.00:user2 example.com
>
> -- forwards --
> Segmentation fault
>
>
> With
> TRACE_STDERR = 5
>
> Its looks like
> ...snipp...
> user2 :5:0:
0.00:0.00:user2 example.com
>
> -- forwards --
> Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[sql]
> dbsqlite.c,db_query(+340): SELECT alias FROM
dbmail_aliases ORDER BY
> alias
> Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[db]
> dbmodule.c,db_query(+145): last query took [0] seconds
> Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
> authsql.c,auth_check_user_ext(+222): checking user
[both example.com] in
> alias table
> Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
> authsql.c,auth_check_user_ext(+239): checks [0]
> Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[sql]
> dbsqlite.c,db_query(+340): SELECT deliver_to FROM
dbmail_aliases WHERE
> lower(alias) = lower('both example.com') AND
lower(alias) <>
> lower(deliver_to)
> Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[db]
> dbmodule.c,db_query(+145): last query took [0] seconds
> Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
> authsql.c,auth_check_user_ext(+273): into checking
loop
> Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
> authsql.c,auth_check_user_ext(+279): checking user
both example.com to
> user1 example.com
> Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
> authsql.c,auth_check_user_ext(+222): checking user
[user1 example.com]
> in alias table
> Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
> authsql.c,auth_check_user_ext(+239): checks [1]
> Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[sql]
> dbsqlite.c,db_query(+340): SELECT deliver_to FROM
dbmail_aliases WHERE
> lower(alias) = lower('user1 example.com') AND
lower(alias) <>
> lower(deliver_to)
> Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[db]
> dbmodule.c,db_query(+145): last query took [0] seconds
> Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
> authsql.c,auth_check_user_ext(+273): into checking
loop
> Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
> authsql.c,auth_check_user_ext(+279): checking user
user1 example.com to
> 4
> Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
> authsql.c,auth_check_user_ext(+222): checking user [4]
in alias table
> Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
> authsql.c,auth_check_user_ext(+239): checks [2]
> Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[sql]
> dbsqlite.c,db_query(+340): SELECT deliver_to FROM
dbmail_aliases WHERE
> lower(alias) = lower('4') AND lower(alias) <>
lower(deliver_to)
> Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[db]
> dbmodule.c,db_query(+145): last query took [0] seconds
> Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
> authsql.c,auth_check_user_ext(+261): adding [4] to
deliver_to address
> Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
> authsql.c,auth_check_user_ext(+279): checking user
both example.com to
> (null)
> Aug 05 22:34:47 garkin.softeyes. dbmail-users[26667]:
Debug:[auth]
> authsql.c,auth_check_user_ext(+222): checking user
[(null)] in alias
> table
> Segmentation fault
>
> so it seams auth_check_user_ext is forgotting user2
>
>
_______________________________________________
DBmail mailing list
DBmail dbmail.org
htt
ps://mailman.fastxs.nl/mailman/listinfo/dbmail
|
|
| Re: Segmentation fault in dbmail-users
and dbmail-util |
  Germany |
2007-08-09 04:27:40 |
Hi,
I found the bug in the sqlite implementation of
db_set_result_set() and
fixed it. Maybe somebody can check this in into SVN.
The patch is
#! /bin/sh /usr/share/dpatch/dpatch-run
## 04_dbsqlite.dpatch by <Peter.Hochgemuth at
pobox.com>
##
## All lines beginning with `## DP:' are a description of
the patch.
## DP:
## DP: [segfault in auth_check_user_ext() using sqlite]
after:
## DP: saveres = db_get_result_set();
## DP: db_set_result_set(NULL);
## DP: ...
## DP: db_set_result_set(saveres);
## DP: the call to db_free_result() in db_set_result_set()
cleared out
the values referenced by db_get_result_set()
## DP:
## DP: remove memory leaks in db_free_result()
## DP: don't reuse lastq in db_query() since we dont know if
the value
is referenced by a db_get_result_set()
DPATCH
diff -urNad dbmail-2.2.6-rc1.orig/modules/dbsqlite.c
dbmail-2.2.6-rc1/modules/dbsqlite.c
--- dbmail-2.2.6-rc1.orig/modules/dbsqlite.c 2007-07-14
11:56:54.000000000 +0200
+++ dbmail-2.2.6-rc1/modules/dbsqlite.c 2007-08-09
09:27:38.000000000
+0200
 -289,8
+289,7 
{
if (lastq) {
if (lastq->resp) sqlite3_free_table(lastq->resp);
- lastq->resp = 0;
- lastq->rows = lastq->cols = 0;
+ free(lastq);
}
lastq = 0;
 -328,14
+327,11 
char *errmsg;
int res, retry=0;
- if (lastq) {
- if (lastq->resp) sqlite3_free_table(lastq->resp);
- } else {
- lastq = (struct qtmp *)malloc(sizeof(struct qtmp));
- if (!lastq) {
- TRACE(TRACE_ERROR, "malloc failed: %s",
strerror(errno));
- return -1;
- }
+ db_free_result();
+ lastq = (struct qtmp *)malloc(sizeof(struct qtmp));
+ if (!lastq) {
+ TRACE(TRACE_ERROR, "malloc failed: %s",
strerror(errno));
+ return -1;
}
TRACE(TRACE_DEBUG,"%s", the_query);
 -355,6
+351,7 
TRACE(TRACE_ERROR, "sqlite3_get_table failed:
%s", errmsg);
sqlite3_free(errmsg);
+ db_free_result();
return -1;
}
 -414,6
+411,5 
void db_set_result_set(void *the_result_set)
{
- db_free_result();
lastq = (struct qtmp *)the_result_set;
}
Am Mittwoch, den 08.08.2007, 00:03 -0700 schrieb Aaron
Stone:
> I rewrote auth_check_user_ext a little bit. I'll try to
find time to put
> the code through some testing this week and check it
into SVN.
>
> Aaron
>
--
softeyes.net - Softeyes GmbH - Pf. 100318 - 01073 Dresden
Geschaeftsfuehrer Joerg Wittenberger; AG Dresden HR B23075
_______________________________________________
DBmail mailing list
DBmail dbmail.org
htt
ps://mailman.fastxs.nl/mailman/listinfo/dbmail
|
|
|
[1-5]
|
|