git://git.exim.org
/
users
/
jgh
/
exim.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
62d5a5b
)
Fix signature parsing
author
Tom Kistner
<tom@duncanthrax.net>
Thu, 9 Apr 2009 14:47:50 +0000
(14:47 +0000)
committer
Tom Kistner
<tom@duncanthrax.net>
Thu, 9 Apr 2009 14:47:50 +0000
(14:47 +0000)
src/src/pdkim/pdkim.c
patch
|
blob
|
history
diff --git
a/src/src/pdkim/pdkim.c
b/src/src/pdkim/pdkim.c
index c70b5d4f4e77195a7faebabb6b2527184294f882..968a9f6c7ff6b28d6911ff018ed8bcbeb98213d8 100644
(file)
--- a/
src/src/pdkim/pdkim.c
+++ b/
src/src/pdkim/pdkim.c
@@
-20,7
+20,7
@@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-/* $Cambridge: exim/src/src/pdkim/pdkim.c,v 1.1.2.
9 2009/04/09 07:49:11
tom Exp $ */
+/* $Cambridge: exim/src/src/pdkim/pdkim.c,v 1.1.2.
10 2009/04/09 14:47:50
tom Exp $ */
#include <stdlib.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
@@
-498,7
+498,7
@@
pdkim_signature *pdkim_parse_sig_header(pdkim_ctx *ctx, char *raw_hdr) {
p = raw_hdr;
q = sig->rawsig_no_b_val;
p = raw_hdr;
q = sig->rawsig_no_b_val;
- while (
*p != '\0'
) {
+ while (
1
) {
/* Ignore FWS */
if ( (*p == '\r') || (*p == '\n') )
/* Ignore FWS */
if ( (*p == '\r') || (*p == '\n') )
@@
-539,10
+539,10
@@
pdkim_signature *pdkim_parse_sig_header(pdkim_ctx *ctx, char *raw_hdr) {
if (cur_val == NULL)
cur_val = pdkim_strnew(NULL);
if (cur_val == NULL)
cur_val = pdkim_strnew(NULL);
- if ( (*p == '\r') || (*p == '\n') )
+ if ( (*p == '\r') || (*p == '\n')
|| (*p == ' ') || (*p == '\t')
)
goto NEXT_CHAR;
goto NEXT_CHAR;
- if (
*p == ';'
) {
+ if (
(*p == ';') || (*p == '\0')
) {
if (cur_tag->len > 0) {
pdkim_strtrim(cur_val);
#ifdef PDKIM_DEBUG
if (cur_tag->len > 0) {
pdkim_strtrim(cur_val);
#ifdef PDKIM_DEBUG
@@
-640,6
+640,7
@@
pdkim_signature *pdkim_parse_sig_header(pdkim_ctx *ctx, char *raw_hdr) {
}
NEXT_CHAR:
}
NEXT_CHAR:
+ if (*p == '\0') break;
if (!in_b_val) {
*q = *p;
if (!in_b_val) {
*q = *p;
@@
-710,7
+711,7
@@
pdkim_pubkey *pdkim_parse_pubkey_record(pdkim_ctx *ctx, char *raw_record) {
p = raw_record;
p = raw_record;
- while (
*p != '\0'
) {
+ while (
1
) {
/* Ignore FWS */
if ( (*p == '\r') || (*p == '\n') )
/* Ignore FWS */
if ( (*p == '\r') || (*p == '\n') )
@@
-744,7
+745,7
@@
pdkim_pubkey *pdkim_parse_pubkey_record(pdkim_ctx *ctx, char *raw_record) {
if ( (*p == '\r') || (*p == '\n') )
goto NEXT_CHAR;
if ( (*p == '\r') || (*p == '\n') )
goto NEXT_CHAR;
- if (
*p == ';'
) {
+ if (
(*p == ';') || (*p == '\0')
) {
if (cur_tag->len > 0) {
pdkim_strtrim(cur_val);
#ifdef PDKIM_DEBUG
if (cur_tag->len > 0) {
pdkim_strtrim(cur_val);
#ifdef PDKIM_DEBUG
@@
-797,6
+798,7
@@
pdkim_pubkey *pdkim_parse_pubkey_record(pdkim_ctx *ctx, char *raw_record) {
}
NEXT_CHAR:
}
NEXT_CHAR:
+ if (*p == '\0') break;
p++;
}
p++;
}