summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xalpine/alpine.exebin8488960 -> 8494080 bytes
-rw-r--r--alpine/arg.c3
-rw-r--r--alpine/imap.c2
-rw-r--r--imap/src/c-client/imap4r1.c2
-rw-r--r--imap/src/osdep/unix/ssl_unix.c8
-rw-r--r--pith/makefile.wnt8
-rw-r--r--pith/pine.hlp6
-rw-r--r--pith/reply.c4
8 files changed, 23 insertions, 10 deletions
diff --git a/alpine/alpine.exe b/alpine/alpine.exe
index d58c8f2f..f8c1f19b 100755
--- a/alpine/alpine.exe
+++ b/alpine/alpine.exe
Binary files differ
diff --git a/alpine/arg.c b/alpine/arg.c
index b39b313c..06e974f4 100644
--- a/alpine/arg.c
+++ b/alpine/arg.c
@@ -978,7 +978,8 @@ process_debug_str(char *debug_str)
else if(struncmp(*p, "flush", 5) == 0){
ps_global->debug_flush = 1;
}
- else if(struncmp(*p, "tcp", 3) == 0){
+ else if(struncmp(*p, "tcp", 3) == 0
+ || struncmp(*p, "tcpdebug", 8) == 0){
ps_global->debug_tcp = 1;
}
else if(struncmp(*p, "verbose", 7) == 0){
diff --git a/alpine/imap.c b/alpine/imap.c
index 495743e3..c5a79130 100644
--- a/alpine/imap.c
+++ b/alpine/imap.c
@@ -2636,7 +2636,7 @@ write_passfile(pinerc, l)
if(ps_global->pwdcert == NULL){
q_status_message(SM_ORDER, 3, 3, "Attempting to encrypt password file");
i = setup_pwdcert(&ps_global->pwdcert);
- if(i == 0 && ps_global->pwdcert == NULL)
+ if((i == 0 || i == -5) && ps_global->pwdcert == NULL)
ps_global->pwdcert = (void *) ALPINE_self_signed_certificate(NULL, 0, ps_global->pwdcertdir, MASTERNAME);
}
if(ps_global->pwdcert == NULL){ /* we tried but failed */
diff --git a/imap/src/c-client/imap4r1.c b/imap/src/c-client/imap4r1.c
index 139137d9..13aaadab 100644
--- a/imap/src/c-client/imap4r1.c
+++ b/imap/src/c-client/imap4r1.c
@@ -4072,7 +4072,7 @@ void imap_parse_unsolicited (MAILSTREAM *stream,IMAPPARSEDREPLY *reply)
unsigned char *txt = reply->text;
if ((t = imap_parse_astring (stream,&txt,reply,&j)) && txt &&
(*txt++ == ' ') && (*txt++ == '(') && (s = strchr (txt,')')) &&
- (s - txt) && !s[1]) {
+ (s - txt)) {
*s = '\0'; /* tie off status data */
/* initialize data block */
status.flags = status.messages = status.recent = status.unseen =
diff --git a/imap/src/osdep/unix/ssl_unix.c b/imap/src/osdep/unix/ssl_unix.c
index 9498eb0e..4c4d6ef8 100644
--- a/imap/src/osdep/unix/ssl_unix.c
+++ b/imap/src/osdep/unix/ssl_unix.c
@@ -36,6 +36,14 @@
#ifdef OPENSSL_1_1_0
#include <rsa.h>
#include <bn.h>
+#ifdef TLSv1_1_client_method
+#undef TLSv1_1_client_method
+#endif /* TLSv1_1_client_method */
+#ifdef TLSv1_2_client_method
+#undef TLSv1_2_client_method
+#endif /* TLSv1_2_client_method */
+#define TLSv1_1_client_method TLS_client_method
+#define TLSv1_2_client_method TLS_client_method
#endif /* OPENSSL_1_1_0 */
#undef STRING
#undef crypt
diff --git a/pith/makefile.wnt b/pith/makefile.wnt
index 4e5b33f4..48ab5817 100644
--- a/pith/makefile.wnt
+++ b/pith/makefile.wnt
@@ -45,7 +45,7 @@ HFILES= ../include/system.h ../include/general.h \
init.h keyword.h ldap.h list.h mailcap.h mailcmd.h mailindx.h maillist.h \
mailpart.h mailview.h margin.h mimedesc.h mimetype.h msgno.h newmail.h news.h \
options.h pattern.h pineelt.h pipe.h readfile.h remote.h remtype.h repltype.h reply.h \
- rfc2231.h save.h savetype.h search.h send.h sequence.h signal.h sort.h sorttype.h \
+ rfc2231.h save.h savetype.h search.h send.h sequence.h signal.h smime.h smkeys.h sort.h sorttype.h \
state.h status.h store.h stream.h string.h strlst.h takeaddr.h tempfile.h text.h \
thread.h url.h user.h util.h
@@ -54,9 +54,9 @@ OFILES= ablookup.obj abdlc.obj addrbook.obj addrstring.obj adrbklib.obj bldaddr.
filter.obj flag.obj folder.obj handle.obj help.obj helptext.obj hist.obj icache.obj imap.obj init.obj \
keyword.obj ldap.obj list.obj mailcap.obj mailcmd.obj mailindx.obj maillist.obj mailview.obj \
margin.obj mimedesc.obj mimetype.obj msgno.obj newmail.obj news.obj pattern.obj pipe.obj \
- readfile.obj remote.obj reply.obj rfc2231.obj save.obj search.obj sequence.obj send.obj sort.obj state.obj \
- status.obj store.obj stream.obj string.obj strlst.obj takeaddr.obj tempfile.obj text.obj \
- thread.obj adjtime.obj url.obj util.obj
+ readfile.obj remote.obj reply.obj rfc2231.obj save.obj search.obj sequence.obj send.obj \
+ smime.obj smkeys.obj sort.obj state.obj status.obj store.obj stream.obj string.obj strlst.obj \
+ takeaddr.obj tempfile.obj text.obj thread.obj adjtime.obj url.obj util.obj
all: libpith.lib
diff --git a/pith/pine.hlp b/pith/pine.hlp
index 845f6214..c3c2de06 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 246 2018-01-08 23:34:22
+Alpine Commit 249 2018-02-24 16:53:18
============= h_news =================
<HTML>
<HEAD>
@@ -232,6 +232,10 @@ Bugs that have been addressed include:
<LI> TLS 1.2 works does not work if Alpine is compiled with openssl &gt;= 1.1.0.
Reported and patched by Kyle George.
+
+ <LI> If the directory where Alpine saves the certificates if empty,
+ alpine would not create a self-signed certificate to encrypt the
+ password file.
</UL>
<P>
diff --git a/pith/reply.c b/pith/reply.c
index 4c0a6f44..2aa9ba22 100644
--- a/pith/reply.c
+++ b/pith/reply.c
@@ -2236,8 +2236,8 @@ forward_subject(ENVELOPE *env, int flags)
(l < 5 || strcmp(tmp_20k_buf+l-5,"(fwd)"))){
snprintf(tmp_20k_buf+2000, SIZEOF_20KBUF-2000, "%s (fwd)", tmp_20k_buf);
tmp_20k_buf[SIZEOF_20KBUF-2000-1] = '\0';
- strncpy(tmp_20k_buf, tmp_20k_buf+2000, SIZEOF_20KBUF);
- tmp_20k_buf[SIZEOF_20KBUF-1] = '\0';
+ memmove(tmp_20k_buf, tmp_20k_buf+2000, strlen(tmp_20k_buf+2000));
+ tmp_20k_buf[strlen(tmp_20k_buf+2000)] = '\0';
}
/*