From 2a66007bd9741a343a55fc1156703020aa5e5100 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Wed, 23 Jan 2002 03:54:12 +0000 Subject: [PATCH] lprintf now checks validity of lputs function pointer before calling (on Win32). Hopefully solves problem of asynchronous log output during sbbsctrl shutdown. --- src/sbbs3/ftpsrvr.c | 6 +++++- src/sbbs3/mailsrvr.c | 5 +++++ src/sbbs3/main.cpp | 5 +++++ src/sbbs3/services.c | 5 +++++ 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c index a92d567d80..ed80a5757f 100644 --- a/src/sbbs3/ftpsrvr.c +++ b/src/sbbs3/ftpsrvr.c @@ -145,6 +145,11 @@ static int lprintf(char *fmt, ...) if(startup==NULL || startup->lputs==NULL) return(0); +#if defined(_WIN32) + if(IsBadCodePtr((FARPROC)startup->lputs)) + return(0); +#endif + va_start(argptr,fmt); vsprintf(sbuf,fmt,argptr); va_end(argptr); @@ -2159,7 +2164,6 @@ static void ctrl_thread(void* arg) char qwkfile[MAX_PATH+1]; char aliasfile[MAX_PATH+1]; char aliasline[512]; - char alias_buf[80]; char desc[501]=""; char sys_pass[128]; char* host_name; diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c index 9250378fe6..edee9664be 100644 --- a/src/sbbs3/mailsrvr.c +++ b/src/sbbs3/mailsrvr.c @@ -107,6 +107,11 @@ static int lprintf(char *fmt, ...) if(startup==NULL || startup->lputs==NULL) return(0); +#if defined(_WIN32) + if(IsBadCodePtr((FARPROC)startup->lputs)) + return(0); +#endif + va_start(argptr,fmt); vsprintf(sbuf,fmt,argptr); va_end(argptr); diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index a15b214f2d..4d19d27c9e 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -141,6 +141,11 @@ int lprintf(char *fmt, ...) if(startup==NULL || startup->lputs==NULL) return(0); +#if defined(_WIN32) + if(IsBadCodePtr((FARPROC)startup->lputs)) + return(0); +#endif + va_start(argptr,fmt); vsprintf(sbuf,fmt,argptr); va_end(argptr); diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c index b1f9715a99..b7cd15a9e6 100644 --- a/src/sbbs3/services.c +++ b/src/sbbs3/services.c @@ -113,6 +113,11 @@ static int lprintf(char *fmt, ...) if(startup==NULL || startup->lputs==NULL) return(0); +#if defined(_WIN32) + if(IsBadCodePtr((FARPROC)startup->lputs)) + return(0); +#endif + va_start(argptr,fmt); vsprintf(sbuf,fmt,argptr); va_end(argptr); -- GitLab