Use the same mh_hostname() function from test/common.h in mhsign(1)
[mmh] / sbr / fmt_rfc2047.c
index 4e8231f..687ea57 100644 (file)
@@ -209,7 +209,7 @@ decode_rfc2047(char *str, char *dst, size_t dstlen)
                        if (use_iconv) {
                                saveq = q;
                                savedstlen = dstlen;
-                               q = convbuf = (char *) mh_xmalloc(endofmime - startofmime);
+                               q = convbuf = mh_xcalloc(endofmime - startofmime, sizeof(char));
                        }
 /*
 ** ADDCHR2 is for adding characters when q is or might be convbuf:
@@ -246,14 +246,16 @@ decode_rfc2047(char *str, char *dst, size_t dstlen)
                                while (pp < endofmime) {
                                        /* 6 + 2 bits */
                                        while ((pp < endofmime) &&
-                                                  ((c1 = char64(*pp)) == -1)) {
+                                                       ((c1 = char64(*pp))
+                                                       == -1)) {
                                                pp++;
                                        }
                                        if (pp < endofmime) {
                                                pp++;
                                        }
                                        while ((pp < endofmime) &&
-                                                  ((c2 = char64(*pp)) == -1)) {
+                                                       ((c2 = char64(*pp))
+                                                       == -1)) {
                                                pp++;
                                        }
                                        if (pp < endofmime && c1 != -1 && c2 != -1) {
@@ -262,7 +264,8 @@ decode_rfc2047(char *str, char *dst, size_t dstlen)
                                        }
                                        /* 4 + 4 bits */
                                        while ((pp < endofmime) &&
-                                                  ((c3 = char64(*pp)) == -1)) {
+                                                       ((c3 = char64(*pp))
+                                                       == -1)) {
                                                pp++;
                                        }
                                        if (pp < endofmime && c2 != -1 && c3 != -1) {
@@ -271,7 +274,8 @@ decode_rfc2047(char *str, char *dst, size_t dstlen)
                                        }
                                        /* 2 + 6 bits */
                                        while ((pp < endofmime) &&
-                                                  ((c4 = char64(*pp)) == -1)) {
+                                                       ((c4 = char64(*pp))
+                                                       == -1)) {
                                                pp++;
                                        }
                                        if (pp < endofmime && c3 != -1 && c4 != -1) {
@@ -314,8 +318,12 @@ decode_rfc2047(char *str, char *dst, size_t dstlen)
                                                        break;
                                                /* skip to next input character */
                                                if (fromutf8) {
-                                                       for (start++;(start < q) && ((*start & 192) == 128);start++)
+                                                       inbytes--;
+                                                       start++;
+                                                       while ((start < q) && ((*start & 192) == 128)) {
+                                                               start++;
                                                                inbytes--;
+                                                       }
                                                } else
                                                        start++, inbytes--;
                                                if (start >= q)
@@ -333,7 +341,7 @@ decode_rfc2047(char *str, char *dst, size_t dstlen)
                                if (!dstlen || !savedstlen)
                                        goto buffull;
                                dstlen = savedstlen;
-                               free(convbuf);
+                               mh_free0(&convbuf);
                        }
 #endif