aboutsummaryrefslogtreecommitdiffstats
path: root/g10
diff options
context:
space:
mode:
Diffstat (limited to 'g10')
-rw-r--r--g10/ChangeLog4
-rw-r--r--g10/armor.c5
-rw-r--r--g10/filter.h1
3 files changed, 10 insertions, 0 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog
index 6ba694e4a..68255f01b 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,7 @@
+Wed Jan 13 14:10:15 CET 1999 Werner Koch <[email protected]>
+
+ * armor.c (radix64_read): Print an error if a bad armor was detected.
+
Wed Jan 13 12:49:36 CET 1999 Werner Koch <[email protected]>
* armor.c (radix64_read): Now handles malformed armors produced
diff --git a/g10/armor.c b/g10/armor.c
index 99142a70f..1f23c6f64 100644
--- a/g10/armor.c
+++ b/g10/armor.c
@@ -646,6 +646,7 @@ radix64_read( armor_filter_context_t *afx, IOBUF a, size_t *retn,
c <<= 4;
c |= isdigit(c2)? (c2 - '0'): (toupper(c2)-'A'+10);
afx->buffer_pos += 2;
+ afx->qp_detected = 1;
goto again;
}
}
@@ -1027,6 +1028,10 @@ armor_filter( void *opaque, int control,
if( afx->truncated )
log_info(_("invalid armor: line longer than %d characters\n"),
MAX_LINELEN );
+ /* issue an error to enforce dissemination of correct software */
+ if( afx->qp_detected )
+ log_error(_("quoted printable character in armor - "
+ "probably a buggy MTA has been used\n") );
m_free( afx->buffer );
afx->buffer = NULL;
}
diff --git a/g10/filter.h b/g10/filter.h
index 46e3f8a54..f0448f1bd 100644
--- a/g10/filter.h
+++ b/g10/filter.h
@@ -42,6 +42,7 @@ typedef struct {
int hashes; /* detected hash algorithms */
int faked; /* we are faking a literal data packet */
int truncated; /* number of truncated lines */
+ int qp_detected;
byte *buffer; /* malloced buffer */
unsigned buffer_size; /* and size of this buffer */