summaryrefslogtreecommitdiff
path: root/pith
diff options
context:
space:
mode:
Diffstat (limited to 'pith')
-rw-r--r--pith/pine.hlp19
-rw-r--r--pith/smime.c10
-rw-r--r--pith/smkeys.c4
-rw-r--r--pith/takeaddr.c9
4 files changed, 33 insertions, 9 deletions
diff --git a/pith/pine.hlp b/pith/pine.hlp
index 630c301d..7eb2f955 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 71 2015-03-25 20:26:58
+Alpine Commit 72 2015-03-31 12:22:49
============= h_news =================
<HTML>
<HEAD>
@@ -211,11 +211,28 @@ Additions include:
<LI> Unix Alpine only. Experimental: If Alpine/Pico finds a UCS4 code
in the width ambiguous zone, it will use other means to determine
the width, such as call wcwidth.
+
+ <LI> Pico: Code reorganization in the search command to make it easier to
+ add subcommands of the search command.
+
+ <LI> Pico: Search command can do a case sensitive match. Use the Ctrl-^
+ subcommand of the search command to bring this choice into view.
+
+ <LI> For a multipart/alternative message, the Take Address command will
+ work on the part that is being read.
</UL>
+
<P>
Bugs that have been addressed include:
<UL>
+ <LI> SMIME: Crash when a certificate has an invalid date of validity. Also
+ Alpine will use the function ASN1_TIME_print to determine the date
+ of validity. Reported by Ben Stienstra.
+
+ <LI> SMIME: Crash when atempting to unlock the password file and an
+ incorrect password is entered.
+
<LI> SMIME: Crash when checking the signature of a message that contains
a RFC822 attached message. Reported by Holger Trapp and Bj&ouml;rn
Krellner.
diff --git a/pith/smime.c b/pith/smime.c
index 99c80c03..9cef212b 100644
--- a/pith/smime.c
+++ b/pith/smime.c
@@ -561,22 +561,20 @@ load_pkey_with_prompt(char *fpath, char *text, char *prompt)
if(in != NULL){
pkey = PEM_read_bio_PrivateKey(in, NULL, NULL, "");
if(pkey != NULL) return pkey;
- }
+ } else return NULL;
if(pith_smime_enter_password)
while(pkey == NULL && rc != 1){
- if(in != NULL){
- do {
+ do {
rc = (*pith_smime_enter_password)(prompt, (char *)pass, sizeof(pass));
} while (rc!=0 && rc!=1 && rc>0);
(void) BIO_reset(in);
pkey = PEM_read_bio_PrivateKey(in, NULL, NULL, (char *)pass);
- BIO_free(in);
- }
- else rc = 1;
}
+ BIO_free(in);
+
return pkey;
}
diff --git a/pith/smkeys.c b/pith/smkeys.c
index 1c9b4cc1..35228914 100644
--- a/pith/smkeys.c
+++ b/pith/smkeys.c
@@ -380,7 +380,9 @@ smime_get_date(ASN1_GENERALIZEDTIME *tm)
struct tm smtm;
(void) BIO_reset(mb);
- ASN1_UTCTIME_print(mb, tm);
+ if(ASN1_TIME_print(mb, tm) == 0)
+ return cpystr(_("Invalid"));
+
(void) BIO_flush(mb);
BIO_read(mb, iobuf, sizeof(iobuf));
diff --git a/pith/takeaddr.c b/pith/takeaddr.c
index 717a1e88..1fb22ef6 100644
--- a/pith/takeaddr.c
+++ b/pith/takeaddr.c
@@ -1824,6 +1824,8 @@ grab_addrs_from_body(MAILSTREAM *stream, long int msgno,
gf_io_t pc;
SourceType src = CharStar;
int added = 0, failure;
+ char *partno = "1";
+ ATTACH_S *a = ps_global->atmts;
dprint((9, "\n - grab_addrs_from_body - \n"));
@@ -1848,7 +1850,12 @@ grab_addrs_from_body(MAILSTREAM *stream, long int msgno,
gf_set_so_writec(&pc, so);
- failure = !get_body_part_text(stream, body, msgno, "1", 0L, pc,
+ if(body->type == TYPEMULTIPART
+ && strucmp(body->subtype, "ALTERNATIVE") == 0
+ && a && a+1 && (a+1)->shown)
+ partno = "2";
+
+ failure = !get_body_part_text(stream, body, msgno, partno, 0L, pc,
NULL, NULL, GBPT_NONE);
gf_clear_so_writec(so);