From a5c4d344ccf55a47fd6bc91a327073915b6c281e Mon Sep 17 00:00:00 2001 From: Dave Hibberd Date: Mon, 6 Jan 2025 21:26:30 +0000 Subject: [PATCH] New upstream version 6.0.24.56+repack --- BPQMail.c | 1 + LinBPQ.c | 27 +++++++++++++++++++++++++++ Versions.h | 4 ++-- WPRoutines.c | 5 ++++- 4 files changed, 34 insertions(+), 3 deletions(-) diff --git a/BPQMail.c b/BPQMail.c index 9f45d7a..64eb9a3 100644 --- a/BPQMail.c +++ b/BPQMail.c @@ -1145,6 +1145,7 @@ // Attempt to detect line draw characters in Webmail (50) // Fix sending ampr.org mail when RMS is not enabled (51) // Send forwarding info to packetnodes.spots.radio database (51) +// Fix bug in WP Message processing (56) #include "bpqmail.h" #include "winstdint.h" diff --git a/LinBPQ.c b/LinBPQ.c index 0f9daab..bd380e1 100644 --- a/LinBPQ.c +++ b/LinBPQ.c @@ -371,8 +371,28 @@ BOOL CtrlHandler(DWORD fdwCtrlType) #else +#include +#include + + // Linux Signal Handlers + +static void segvhandler(int sig) +{ + void *array[10]; + size_t size; + + // get void*'s for all entries on the stack + size = backtrace(array, 10); + + // print out all the frames to stderr + fprintf(stderr, "Error: signal %d:\n", sig); + backtrace_symbols_fd(array, size, STDERR_FILENO); + exit(1); +} + + static void sigterm_handler(int sig) { syslog(LOG_INFO, "terminating on SIGTERM\n"); @@ -554,6 +574,8 @@ extern int POP3Timer; #ifndef WIN32 + + #define _getch getchar /** @@ -738,6 +760,8 @@ char HelpScreen[] = int Redirected = 0; +static void segvhandler(int sig); + int main(int argc, char * argv[]) { int i; @@ -767,6 +791,9 @@ int main(int argc, char * argv[]) } #else + +// signal(SIGSEGV, segvhandler); + setlinebuf(stdout); struct sigaction act; openlog("LINBPQ", LOG_PID, LOG_DAEMON); diff --git a/Versions.h b/Versions.h index 031177a..2428b95 100644 --- a/Versions.h +++ b/Versions.h @@ -10,8 +10,8 @@ #endif -#define KVers 6,0,24,55 -#define KVerstring "6.0.24.55\0" +#define KVers 6,0,24,56 +#define KVerstring "6.0.24.56\0" #ifdef CKernel diff --git a/WPRoutines.c b/WPRoutines.c index ac39a5b..0b8e315 100644 --- a/WPRoutines.c +++ b/WPRoutines.c @@ -946,6 +946,9 @@ VOID ProcessWPMsg(char * MailBuffer, int Size, char * FirstRLine) WPLen = ptr2 - ptr1; + if (WPLen > 128) + return; + if ((memcmp(ptr1, "On ", 3) == 0) && (WPLen < 200)) { char * Date; @@ -1030,7 +1033,7 @@ it will not be replaced. This flag will be used in case the WP update messages a WPDate -= (time_t)_MYTIMEZONE; TypeString = strlop(Call, '/'); - if (strlen(Call) < 3 || strlen(Call) > 9) + if (strlen(Call) < 3 || strlen(Call) > 6) return; if (TypeString)