diff options
Diffstat (limited to 'g10')
-rw-r--r-- | g10/ChangeLog | 4 | ||||
-rw-r--r-- | g10/armor.c | 5 | ||||
-rw-r--r-- | g10/filter.h | 1 |
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 */ |