1
0
mirror of git://git.gnupg.org/gnupg.git synced 2025-02-01 16:33:02 +01:00

* armor.c (parse_header_line): A fussy bit of 2440: header lines are

delimited with a colon-space pair.  Therefore a line such as "Comment:
" is actually legal, albeit not particularly useful.
This commit is contained in:
David Shaw 2005-11-13 21:48:52 +00:00
parent 40b9d5648d
commit 9d49768999
2 changed files with 24 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2005-11-13 David Shaw <dshaw@jabberwocky.com>
* armor.c (parse_header_line): A fussy bit of 2440: header lines
are delimited with a colon-space pair. Therefore a line such as
"Comment: " is actually legal, albeit not particularly useful.
2005-11-11 David Shaw <dshaw@jabberwocky.com>
* trustdb.h, trustdb.c (clean_key): New function to handle key

View File

@ -339,16 +339,30 @@ parse_header_line( armor_filter_context_t *afx, byte *line, unsigned int len )
afx->buffer_pos = len2; /* (it is not the fine way to do it here) */
return 0; /* WS only: same as empty line */
}
len = len2;
line[len2] = 0;
/*
This is fussy. The spec says that a header line is delimited
with a colon-space pair. This means that a line such as
"Comment: " (with nothing else) is actually legal as an empty
string comment. However, email and cut-and-paste being what it
is, that trailing space may go away. Therefore, we accept empty
headers delimited with only a colon. --rfc2440, as always,
makes this strict and enforces the colon-space pair. -dms
*/
p = strchr( line, ':');
if( !p || !p[1] ) {
if( !p || (RFC2440 && p[1]!=' ')
|| (!RFC2440 && p[1]!=' ' && p[1]!='\n' && p[1]!='\r'))
{
log_error(_("invalid armor header: "));
print_string( stderr, line, len, 0 );
putc('\n', stderr);
return -1;
}
}
/* Chop off the whitespace we detected before */
len=len2;
line[len2]='\0';
if( opt.verbose ) {
log_info(_("armor header: "));