diff options
-rw-r--r-- | alpine/alpine.c | 1 | ||||
-rw-r--r-- | alpine/mailcmd.c | 2 | ||||
-rw-r--r-- | alpine/titlebar.c | 7 | ||||
-rw-r--r-- | alpine/titlebar.h | 1 | ||||
-rw-r--r-- | imap/src/c-client/imap4r1.c | 1 | ||||
-rw-r--r-- | imap/src/c-client/mail.c | 1 | ||||
-rw-r--r-- | imap/src/c-client/tcp.h | 1 | ||||
-rw-r--r-- | imap/src/osdep/nt/tcp_nt.c | 8 | ||||
-rw-r--r-- | imap/src/osdep/unix/env_unix.c | 1 | ||||
-rw-r--r-- | imap/src/osdep/unix/tcp_unix.c | 12 | ||||
-rw-r--r-- | imap/src/osdep/unix/unix.c | 33 | ||||
-rw-r--r-- | pith/ablookup.c | 2 | ||||
-rw-r--r-- | pith/bldaddr.c | 6 | ||||
-rw-r--r-- | pith/bldaddr.h | 2 | ||||
-rw-r--r-- | pith/charconv/filesys.c | 10 | ||||
-rw-r--r-- | pith/pine.hlp | 2 | ||||
-rw-r--r-- | pith/state.c | 5 |
17 files changed, 68 insertions, 27 deletions
diff --git a/alpine/alpine.c b/alpine/alpine.c index 917e0cee..825ef09f 100644 --- a/alpine/alpine.c +++ b/alpine/alpine.c @@ -3552,6 +3552,7 @@ free_alpine_module_globals(void) #endif free_message_queue(); free_mailcmd_globals(); + free_titlebar_globals(); } #ifdef WIN32 diff --git a/alpine/mailcmd.c b/alpine/mailcmd.c index 8f395a1b..bc6cf947 100644 --- a/alpine/mailcmd.c +++ b/alpine/mailcmd.c @@ -9907,7 +9907,7 @@ free_mailcmd_globals(void) * are hacks to free history memory */ smime_import_certificate(NULL, NULL, NULL, 0); - save_prompt(NULL, NULL, NULL, 0, NULL, NULL, 0, NULL, NULL, NULL); + save_prompt(NULL, NULL, NULL, 0, NULL, NULL, 0L, NULL, NULL, NULL); cmd_export(NULL, NULL, 0, 0); simple_export(NULL, NULL, CharStar, NULL, NULL); broach_folder(0, 0, NULL, NULL); diff --git a/alpine/titlebar.c b/alpine/titlebar.c index dffdb40d..9f7d3564 100644 --- a/alpine/titlebar.c +++ b/alpine/titlebar.c @@ -1261,3 +1261,10 @@ newmail_check_point_cue(int onoroff) mswin_setcursor (MSWIN_CURSOR_ARROW); #endif } + +void +free_titlebar_globals(void) +{ + if(as_fname) fs_give((void **) &as_fname); + if(as_cname) fs_give((void **) &as_cname); +} diff --git a/alpine/titlebar.h b/alpine/titlebar.h index 41fe3801..f0f3079c 100644 --- a/alpine/titlebar.h +++ b/alpine/titlebar.h @@ -50,6 +50,7 @@ void update_titlebar_lpercent(long); void titlebar_stream_closing(MAILSTREAM *); int update_titlebar_status(void); void check_cue_display(char *); +void free_titlebar_globals(void); #endif /* PINE_TITLEBAR_INCLUDED */ diff --git a/imap/src/c-client/imap4r1.c b/imap/src/c-client/imap4r1.c index 343e29bf..b20453ee 100644 --- a/imap/src/c-client/imap4r1.c +++ b/imap/src/c-client/imap4r1.c @@ -2951,6 +2951,7 @@ long imap_setid (MAILSTREAM *stream, IDLIST *idlist) if (imap_OK (stream,reply = imap_send (stream,"ID",args))) ret = LONGT; else mm_log (reply->text,ERROR); + if(qroot) fs_give((void **) &qroot); } else mm_log("Empty or malformed ID list", ERROR); } else mm_log ("ID capability not available on this IMAP server",ERROR); diff --git a/imap/src/c-client/mail.c b/imap/src/c-client/mail.c index b18f7732..3dd45eb5 100644 --- a/imap/src/c-client/mail.c +++ b/imap/src/c-client/mail.c @@ -6407,4 +6407,5 @@ char *net_localhost (NETSTREAM *stream) void free_c_client_module_globals(void) { env_end(); + tcp_end(); } diff --git a/imap/src/c-client/tcp.h b/imap/src/c-client/tcp.h index b9f095a8..ecf39bef 100644 --- a/imap/src/c-client/tcp.h +++ b/imap/src/c-client/tcp.h @@ -57,3 +57,4 @@ char *tcp_serverhost (void); long tcp_serverport (void); char *tcp_canonical (char *name); long tcp_isclienthost (char *host); +void tcp_end(void); diff --git a/imap/src/osdep/nt/tcp_nt.c b/imap/src/osdep/nt/tcp_nt.c index aeb05a3e..7af6de77 100644 --- a/imap/src/osdep/nt/tcp_nt.c +++ b/imap/src/osdep/nt/tcp_nt.c @@ -918,3 +918,11 @@ char *tcp_name_valid (char *s) } return ret; } + +void tcp_end(void) +{ + if(myClientAddr) fs_give((void **) &myClientAddr); + if(myClientHost) fs_give((void **) &myClientHost); + if(myServerAddr) fs_give((void **) &myServerAddr); + if(myServerHost) fs_give((void **) &myServerHost); +} diff --git a/imap/src/osdep/unix/env_unix.c b/imap/src/osdep/unix/env_unix.c index 44aed22f..322ab61a 100644 --- a/imap/src/osdep/unix/env_unix.c +++ b/imap/src/osdep/unix/env_unix.c @@ -1857,6 +1857,7 @@ void *mm_blocknotify (int reason,void *data) void env_end(void) { + if(myMailboxDir) fs_give((void **) &myMailboxDir); if(myUserName) fs_give((void **)&myUserName); if(myHomeDir) fs_give((void **)&myHomeDir); if(ftpHome) fs_give((void **)&ftpHome); diff --git a/imap/src/osdep/unix/tcp_unix.c b/imap/src/osdep/unix/tcp_unix.c index 339c968c..b076ce44 100644 --- a/imap/src/osdep/unix/tcp_unix.c +++ b/imap/src/osdep/unix/tcp_unix.c @@ -1066,3 +1066,15 @@ long tcp_isclienthost (char *host) /* Following statement must be at end of this module */ #undef fork /* undo any use of vfork() */ + +void tcp_end(void) +{ + if(rshcommand) fs_give((void **) &rshcommand); + if(rshpath) fs_give((void **) &rshpath); + if(sshcommand) fs_give((void **) &sshcommand); + if(sshpath) fs_give((void **) &sshpath); + if(myClientAddr) fs_give((void **) &myClientAddr); + if(myClientHost) fs_give((void **) &myClientHost); + if(myServerAddr) fs_give((void **) &myServerAddr); + if(myServerHost) fs_give((void **) &myServerHost); +} diff --git a/imap/src/osdep/unix/unix.c b/imap/src/osdep/unix/unix.c index cda5798c..74a1ffa9 100644 --- a/imap/src/osdep/unix/unix.c +++ b/imap/src/osdep/unix/unix.c @@ -21,7 +21,7 @@ * Internet: MRC@Washington.EDU * * Date: 20 December 1989 - * Last Edited: 27 March 2008 + * Last Edited: June 13 2018 by Eduardo Chappa */ @@ -586,8 +586,15 @@ void unix_close (MAILSTREAM *stream,long options) * Returns: message header in RFC822 format */ - /* lines to filter from header */ -static STRINGLIST *unix_hlines = NIL; + +STRINGLIST XIMAPbase = {"X-IMAPbase", 10, NIL}; +STRINGLIST XIMAP = {"X-IMAP", 6, &XIMAPbase}; +STRINGLIST XUID = {"X-UID", 5, &XIMAP}; +STRINGLIST XKeywords = {"X-Keywords", 10, &XUID}; +STRINGLIST XStatus = {"X-Status", 8, &XKeywords}; +STRINGLIST Status = {"Status", 6, &XStatus}; + +static STRINGLIST *unix_hlines = &Status; char *unix_header (MAILSTREAM *stream,unsigned long msgno, unsigned long *length,long flags) @@ -597,26 +604,6 @@ char *unix_header (MAILSTREAM *stream,unsigned long msgno, *length = 0; /* default to empty */ if (flags & FT_UID) return "";/* UID call "impossible" */ elt = mail_elt (stream,msgno);/* get cache */ - if (!unix_hlines) { /* once only code */ - STRINGLIST *lines = unix_hlines = mail_newstringlist (); - lines->text.size = strlen ((char *) (lines->text.data = - (unsigned char *) "Status")); - lines = lines->next = mail_newstringlist (); - lines->text.size = strlen ((char *) (lines->text.data = - (unsigned char *) "X-Status")); - lines = lines->next = mail_newstringlist (); - lines->text.size = strlen ((char *) (lines->text.data = - (unsigned char *) "X-Keywords")); - lines = lines->next = mail_newstringlist (); - lines->text.size = strlen ((char *) (lines->text.data = - (unsigned char *) "X-UID")); - lines = lines->next = mail_newstringlist (); - lines->text.size = strlen ((char *) (lines->text.data = - (unsigned char *) "X-IMAP")); - lines = lines->next = mail_newstringlist (); - lines->text.size = strlen ((char *) (lines->text.data = - (unsigned char *) "X-IMAPbase")); - } /* go to header position */ lseek (LOCAL->fd,elt->private.special.offset + elt->private.msg.header.offset,L_SET); diff --git a/pith/ablookup.c b/pith/ablookup.c index 54336fd9..1b12eba0 100644 --- a/pith/ablookup.c +++ b/pith/ablookup.c @@ -862,6 +862,8 @@ address_is_us(struct mail_address *a, struct pine *ps) ret = 0; if(a && a->host && a->mailbox) snprintf(addrstr, sizeof(addrstr), "%s@%s", a->mailbox, a->host); + else + addrstr[0] = '\0'; for(t = ps_global->VAR_ALT_ADDRS; !ret && t[0] && t[0][0]; t++){ char *alt; diff --git a/pith/bldaddr.c b/pith/bldaddr.c index 2de234bc..3d7b9e7b 100644 --- a/pith/bldaddr.c +++ b/pith/bldaddr.c @@ -1261,3 +1261,9 @@ free_privatetop(PrivateTop **pt) fs_give((void **)pt); } } + +void +free_bldaddr_module_globals(void) +{ + if(last_fcc_used) fs_give((void **)&last_fcc_used); +} diff --git a/pith/bldaddr.h b/pith/bldaddr.h index 0be400be..80e1ccd1 100644 --- a/pith/bldaddr.h +++ b/pith/bldaddr.h @@ -117,6 +117,6 @@ void set_last_fcc(char *); char *get_fcc_based_on_to(ADDRESS *); void free_privatetop(PrivateTop **); void strip_personal_quotes(ADDRESS *); - +void free_bldaddr_module_globals(void); #endif /* PITH_BLDADDR_INCLUDED */ diff --git a/pith/charconv/filesys.c b/pith/charconv/filesys.c index fe989aff..2515c99a 100644 --- a/pith/charconv/filesys.c +++ b/pith/charconv/filesys.c @@ -56,6 +56,11 @@ fname_to_locale(char *fname) static size_t fname_locale_len = 0; char *converted_fname, *p; + if(fname == NULL){ /* special call to free memory */ + if(fname_locale_buf) fs_give((void **) &fname_locale_buf); + return NULL; + } + p = convert_to_locale(fname); if(p) converted_fname = p; @@ -103,6 +108,11 @@ fname_to_utf8(char *fname) static size_t fname_utf8_len = 0; char *converted_fname, *p; + if(fname == NULL){ /* special call to free memory */ + if(fname_utf8_buf) fs_give((void **) &fname_utf8_buf); + return NULL; + } + p = convert_to_utf8(fname, NULL, 0); if(p) converted_fname = p; diff --git a/pith/pine.hlp b/pith/pine.hlp index ebf8b7fb..cc394f1a 100644 --- a/pith/pine.hlp +++ b/pith/pine.hlp @@ -140,7 +140,7 @@ with help text for the config screen and the composer that didn't have any reasonable place to be called from. Dummy change to get revision in pine.hlp ============= h_revision ================= -Alpine Commit 277 2018-05-20 14:52:22 +Alpine Commit 285 2018-06-14 16:50:05 ============= h_news ================= <HTML> <HEAD> diff --git a/pith/state.c b/pith/state.c index 5d83aba6..f4785850 100644 --- a/pith/state.c +++ b/pith/state.c @@ -34,7 +34,7 @@ static char rcsid[] = "$Id: state.c 1074 2008-06-04 00:08:43Z hubert@u.washingto #include "../pith/list.h" #include "../pith/smime.h" #include "../pith/ical.h" - +#include "../pith/bldaddr.h" /* * Globals referenced throughout pine... @@ -359,4 +359,7 @@ free_pith_module_globals(void) { free_filter_module_globals(); ical_free_all(); + free_bldaddr_module_globals(); + fname_to_locale(NULL); + fname_to_utf8(NULL); } |