I'm trying to set up a merged group based off our spamtrainer user.  Since 
we're using virtual uid's, and because of the way Postfix passes addresses to 
Dspam, the user is in the db as [EMAIL PROTECTED]  Postfix 
is also set up as always_bcc = spamtrainer (an actual system user).  My group 
is set up this way:

[EMAIL PROTECTED]:merged:*

If I send a message to a user, the user's message filters fine, but when it 
comes time to filter the spamtrainer's message, I get this from debug output:

2958: [03/07/2007 15:44:47] DSPAM Instance Startup
2958: [03/07/2007 15:44:47] input args: dspam --deliver=innocent
2958: [03/07/2007 15:44:47] pass-thru args:
2958: [03/07/2007 15:44:47] processing user 
[EMAIL PROTECTED]
2958: [03/07/2007 15:44:47] uid = 0, euid = 0, gid = 0, egid = 113
2958: [03/07/2007 15:44:47] loading preferences for user 
[EMAIL PROTECTED]
2958: [03/07/2007 15:44:47] Loading preferences for uid 23
2958: [03/07/2007 15:44:47] Loading preferences for uid 0
2958: [03/07/2007 15:44:47] default preferences empty. reverting to dspam.conf 
preferences.
2958: [03/07/2007 15:44:47] Loading preferences from dspam.conf
2958: [03/07/2007 15:44:47] 
using /var/spool/dspam/opt-in/hyperion.eeinternet.com/spamtrainer.dspam as 
path
2958: [03/07/2007 15:44:47] 
using /var/spool/dspam/opt-out/hyperion.eeinternet.com/spamtrainer.nodspam as 
path
2958: [03/07/2007 15:44:47] sedation level set to: 0

And then Dspam dies right there.  An strace shows that it opens and reads 
group for the first user just fine, but then  when it opens it for the 
spamtrainer user:

pid 32217] open("/var/spool/dspam/group", O_RDONLY) = 30
[pid 32217] fstat64(30, {st_mode=S_IFREG|0644, st_size=46, ...}) = 0
[pid 32217] mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|
MAP_ANONYMOUS, -1, 0) = 0xb7ef6000
[pid 32217] read(30, "[EMAIL PROTECTED]"..., 4096) = 46
[pid 32217] read(30, "", 4096)          = 0
[pid 32217] close(30)                   = 0
[pid 32217] munmap(0xb7ef6000, 4096)    = 0
[pid 32217] poll([{fd=7, events=POLLIN|POLLPRI}], 1, 0) = 0
[pid 32217] write(7, "\1\0\0\0\16", 5)  = 5
[pid 32217] read(7, "\7\0\0\1\0\0\0\2\0\0\0", 16384) = 11
[pid 32217] poll([{fd=7, events=POLLIN|POLLPRI}], 1, 0) = 0
[pid 32217] write(7, "Z\0\0\0\3select uid from dspam_virtu"..., 94) = 94
[pid 32217] read(7, "\1\0\0\1\1E\0\0\2\3def\5dspam\22dspam_virtua"..., 16384) 
= 103
[pid 32217] --- SIGSEGV (Segmentation fault) @ 0 (0) ---

Is it not liking the '@' in the group name?  But why didn't that matter the 
first time it read it?

I'd creat an entry in the uid table for 'spamtrainer' 
(no '@mailserver.example.com' part) and set their uids the same, and use that 
for my group name, but the uid is a primary key, so can't be duplicated.

Any hints or tips?  Did I discover a genuine bug?

j

-- 
Joshua Kugler                           
Lead System Admin -- Senior Programmer
http://www.eeinternet.com
PGP Key: http://pgp.mit.edu/  ID 0xDB26D7CE
PO Box 80086 -- Fairbanks, AK 99708 -- Ph: 907-456-5581 Fax: 907-456-3111

Reply via email to