The first is related to the timezone variable I used in vdelivermail. I've removed it and just use GMT time now. timezone-patch.txt fixed that problem.
timezone-patch.txt
Description: application/applefile
diff -u vpopmail-5.3.23/vdelivermail.c vpopmail-5.3.24/vdelivermail.c
--- vpopmail-5.3.23/vdelivermail.c Fri Jul 25 04:49:27 2003
+++ vpopmail-5.3.24/vdelivermail.c Sun Aug 3 08:02:14 2003
@@ -1318,7 +1318,6 @@
{
time_t now;
struct tm *tm;
- unsigned int tz;
static char *montab[12] = {
"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"
@@ -1328,19 +1327,14 @@
};
static char dh[39];
- /* set timezone variable (seconds west of GMT) */
- tzset();
- tz = (unsigned int) abs(timezone / 60);
-
/* look up current time and fill tm structure */
time(&now);
- tm = localtime(&now);
+ tm = gmtime(&now);
snprintf (dh, sizeof(dh),
- "Date: %s, %02u %s %u %02u:%02u:%02u %s%02u%02u\n",
+ "Date: %s, %02u %s %u %02u:%02u:%02u +0000\n",
wday[tm->tm_wday], tm->tm_mday, montab[tm->tm_mon], tm->tm_year + 1900,
- tm->tm_hour, tm->tm_min, tm->tm_sec, timezone > 0 ? "-" : "+",
- tz / 60, tz % 60 * 100 / 60);
+ tm->tm_hour, tm->tm_min, tm->tm_sec);
return dh;
}
The second was segfaults in vadddomain and vdeldomain (and probably other code). patch-vget_assign.txt corrects the bug I introduced to vget_assign() in vpopmail.c
--- vpopmail-5.3.23/vpopmail.c Thu Jul 24 07:35:10 2003
+++ vpopmail-5.3.24/vpopmail.c Mon Aug 4 07:47:01 2003
@@ -1892,8 +1892,14 @@
}
/* this is a new lookup, free memory from last lookup if necc. */
- if ( in_domain != NULL ) free(in_domain);
- if ( in_dir != NULL ) free(in_dir);
+ if ( in_domain != NULL ) {
+ free(in_domain);
+ in_domain = NULL;
+ }
+ if ( in_dir != NULL ) {
+ free(in_dir);
+ in_dir = NULL;
+ }
in_domain_size = 156;
in_domain = malloc(in_domain_size);
@@ -1941,17 +1947,15 @@
in_dir = malloc(in_dir_size);
strncpy( in_dir, ptr, in_dir_size);
- free(tmpstr);
free(tmpbuf);
- fclose(fs);
- return(in_dir);
} else {
free(in_domain);
+ in_domain = NULL;
in_domain_size = 0;
}
fclose(fs);
free(tmpstr);
- return(NULL);
+ return(in_dir);
}
int vget_real_domain(char *domain, int len )
--
Tom Collins
[EMAIL PROTECTED]
http://sniffter.com/ - info on the Sniffter hand-held Network Tester
