File mutt-1.5.21-cariage-return.path of Package mutt.3290

--- crypt-gpgme.c
+++ crypt-gpgme.c	2013-05-29 09:31:53.141939173 +0000
@@ -2003,12 +2003,12 @@ static int pgp_check_traditional_one_bod
   {
     if (!mutt_strncmp ("-----BEGIN PGP ", buf, 15))
     {
-      if (!mutt_strcmp ("MESSAGE-----\n", buf + 15))
+      if (!mutt_strxcmp ("MESSAGE-----\n", buf + 15))
       {
 	enc = 1;
 	break;
       }
-      else if (!mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15))
+      else if (!mutt_strxcmp ("SIGNED MESSAGE-----\n", buf + 15))
       {
 	sgn = 1;
 	break;
@@ -2196,14 +2196,14 @@ int pgp_gpgme_application_handler (BODY
           clearsign = 0;
           start_pos = last_pos;
           
-          if (!mutt_strcmp ("MESSAGE-----\n", buf + 15))
+          if (!mutt_strxcmp ("MESSAGE-----\n", buf + 15))
             needpass = 1;
-          else if (!mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15))
+          else if (!mutt_strxcmp ("SIGNED MESSAGE-----\n", buf + 15))
             {
               clearsign = 1;
               needpass = 0;
             }
-          else if (!mutt_strcmp ("PUBLIC KEY BLOCK-----\n", buf + 15))
+          else if (!mutt_strxcmp ("PUBLIC KEY BLOCK-----\n", buf + 15))
           {
             needpass = 0;
             pgp_keyblock = 1;
--- lib.c
+++ lib.c	2013-05-29 09:31:53.325439198 +0000
@@ -875,6 +875,18 @@ int mutt_strcmp(const char *a, const cha
   return strcmp(NONULL(a), NONULL(b));
 }
 
+int mutt_strxcmp(const char *a, const char *b)
+{
+  size_t xa, xb;
+  xa = strcspn(NONULL(a), "\r\n");
+  xb = strcspn(NONULL(b), "\r\n");
+  if (xb != xa)
+    return -1;
+  if (!xa)
+    return 0;
+  return strncmp(NONULL(a), NONULL(b), xa);
+}
+
 int mutt_strcasecmp(const char *a, const char *b)
 {
   return strcasecmp(NONULL(a), NONULL(b));
--- lib.h
+++ lib.h	2013-05-29 09:25:21.805439324 +0000
@@ -179,6 +179,7 @@ int mutt_copy_bytes (FILE *, FILE *, siz
 int mutt_rx_sanitize_string (char *, size_t, const char *);
 int mutt_strcasecmp (const char *, const char *);
 int mutt_strcmp (const char *, const char *);
+int mutt_strxcmp (const char *, const char *);
 int mutt_strncasecmp (const char *, const char *, size_t);
 int mutt_strncmp (const char *, const char *, size_t);
 int mutt_strcoll (const char *, const char *);
--- pager.c
+++ pager.c	2013-05-29 09:31:53.433440090 +0000
@@ -771,7 +771,7 @@ resolve_types (char *buf, char *raw, str
   else if (check_attachment_marker ((char *) raw) == 0)
     lineInfo[n].type = MT_COLOR_ATTACHMENT;
 #endif
-  else if (mutt_strcmp ("-- \n", buf) == 0 || mutt_strcmp ("-- \r\n", buf) == 0)
+  else if (mutt_strxcmp ("-- \n", buf) == 0)
   {
     i = n + 1;
 
--- pgp.c
+++ pgp.c	2013-05-29 09:31:53.461439587 +0000
@@ -287,14 +287,14 @@ int pgp_application_pgp_handler (BODY *m
       clearsign = 0;
       start_pos = last_pos;
 
-      if (mutt_strcmp ("MESSAGE-----\n", buf + 15) == 0)
+      if (mutt_strxcmp ("MESSAGE-----\n", buf + 15) == 0)
         needpass = 1;
-      else if (mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0)
+      else if (mutt_strxcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0)
       {
 	clearsign = 1;
         needpass = 0;
       }
-      else if (!mutt_strcmp ("PUBLIC KEY BLOCK-----\n", buf + 15))
+      else if (!mutt_strxcmp ("PUBLIC KEY BLOCK-----\n", buf + 15))
       {
         needpass = 0;
         pgp_keyblock = 1;
@@ -327,10 +327,10 @@ int pgp_application_pgp_handler (BODY *m
 	
 	fputs (buf, tmpfp);
 
-	if ((needpass && mutt_strcmp ("-----END PGP MESSAGE-----\n", buf) == 0) ||
+	if ((needpass && mutt_strxcmp ("-----END PGP MESSAGE-----\n", buf) == 0) ||
 	    (!needpass 
-             && (mutt_strcmp ("-----END PGP SIGNATURE-----\n", buf) == 0
-                 || mutt_strcmp ("-----END PGP PUBLIC KEY BLOCK-----\n",buf) == 0)))
+             && (mutt_strxcmp ("-----END PGP SIGNATURE-----\n", buf) == 0
+                 || mutt_strxcmp ("-----END PGP PUBLIC KEY BLOCK-----\n",buf) == 0)))
 	  break;
 	/* remember optional Charset: armor header as defined by RfC4880 */
 	if (mutt_strncmp ("Charset: ", buf, 9) == 0)
@@ -552,11 +552,11 @@ static int pgp_check_traditional_one_bod
   {
     if (mutt_strncmp ("-----BEGIN PGP ", buf, 15) == 0)
     {
-      if (mutt_strcmp ("MESSAGE-----\n", buf + 15) == 0)
+      if (mutt_strxcmp ("MESSAGE-----\n", buf + 15) == 0)
 	enc = 1;
-      else if (mutt_strcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0)
+      else if (mutt_strxcmp ("SIGNED MESSAGE-----\n", buf + 15) == 0)
 	sgn = 1;
-      else if (mutt_strcmp ("PUBLIC KEY BLOCK-----\n", buf + 15) == 0)
+      else if (mutt_strxcmp ("PUBLIC KEY BLOCK-----\n", buf + 15) == 0)
 	key = 1;
     }
   }
@@ -1065,9 +1065,9 @@ BODY *pgp_sign_message (BODY *a)
    */
   while (fgets (buffer, sizeof (buffer) - 1, pgpout) != NULL)
   {
-    if (mutt_strcmp ("-----BEGIN PGP MESSAGE-----\n", buffer) == 0)
+    if (mutt_strxcmp ("-----BEGIN PGP MESSAGE-----\n", buffer) == 0)
       fputs ("-----BEGIN PGP SIGNATURE-----\n", fp);
-    else if (mutt_strcmp("-----END PGP MESSAGE-----\n", buffer) == 0)
+    else if (mutt_strxcmp("-----END PGP MESSAGE-----\n", buffer) == 0)
       fputs ("-----END PGP SIGNATURE-----\n", fp);
     else
       fputs (buffer, fp);
openSUSE Build Service is sponsored by