The code works fine 98% of the time, but some users it seems to
core dump on them. One user has this in their directory (8 Messages):
total 768
drwx------ 2 cyrus cyrus 4096 Nov 22 15:02 .
drwx------ 80 cyrus cyrus 4096 Nov 21 17:08 ..
-rw------- 1 cyrus cyrus 87821 Oct 31 14:16 19.
-rw------- 1 cyrus cyrus 108143 Nov 2 09:35 20.
-rw------- 1 cyrus cyrus 66154 Nov 2 11:01 21.
-rw------- 1 cyrus cyrus 57438 Nov 3 15:36 22.
-rw------- 1 cyrus cyrus 99124 Nov 7 13:44 23.
-rw------- 1 cyrus cyrus 168465 Nov 9 19:22 24.
-rw------- 1 cyrus cyrus 111266 Nov 13 12:10 25.
-rw------- 1 cyrus cyrus 8091 Nov 13 17:02 26.
-rw------- 1 cyrus cyrus 8256 Nov 13 17:02 cyrus.cache
-rw------- 1 cyrus cyrus 149 Nov 20 14:47 cyrus.header
-rw------- 1 cyrus cyrus 460 Nov 13 17:02 cyrus.index
-rw------- 1 cyrus cyrus 0 Sep 22 11:03 cyrus.seen
Cyrus blows up in the pop3d openinbox() code. I manually
changed the popd_exists (number of messages) to 3 and the
code works. Does anyone know any reasons why this code
would core dump depending on the # of messages? I rebooted
the server to clear out all the memory and the problem would still
persist.
-Allan
if (!r) {
popd_exists = mboxstruct.exists;
popd_exists = 3;
syslog(LOG_NOTICE, "GOING TO DIE! 2: %d\n", popd_exists + 1);
popd_highest = 0;
syslog(LOG_NOTICE, "GOING TO DIE! 3: %d\n", (popd_exists+1) * sizeof(struct
msg));
popd_msg = (struct msg *)xmalloc((popd_exists+1) * sizeof(struct msg));
syslog(LOG_NOTICE, "IT IS DEAD!!........ NEVER SEE THIS LINE: %d\n",
popd_exists);
for (msg = 1; msg <= popd_exists; msg++) {
if (r = mailbox_read_index_record(&mboxstruct, msg, &record))
break;
popd_msg[msg].uid = record.uid;
popd_msg[msg].size = record.size;
popd_msg[msg].deleted = 0;
}
}
syslog(LOG_NOTICE, "NEVER GETS HERE!!\n");
<- Allan Rafuse ->
Systems Administrator
Freeview Publishing Inc.
email: [EMAIL PROTECTED]
web: http://www.freeview.com