From: Wilfried Göesgens Date: Sat, 5 Apr 2008 18:23:11 +0000 (+0000) Subject: * fixed some hickups in the urlencode function. X-Git-Tag: v7.86~2354 X-Git-Url: https://code.citadel.org/?a=commitdiff_plain;h=e5d2f1a62f71469f8e3f71adc6d89db5850b8b96;p=citadel.git * fixed some hickups in the urlencode function. --- diff --git a/webcit/messages.c b/webcit/messages.c index 7afaa1641..4178a91a0 100644 --- a/webcit/messages.c +++ b/webcit/messages.c @@ -300,14 +300,15 @@ int webcit_rfc2047encode(char *target, int maxlen, char *source, long SourceLen) if (!need_to_encode) { memcpy (target, source, SourceLen); + target[SourceLen] = '\0'; return SourceLen; } if (sizeof (headerStr + SourceLen + 2) > maxlen) return -1; memcpy (target, headerStr, sizeof (headerStr)); - len = sizeof (headerStr); - for (i=0; (i < SourceLen) && (len < maxlen) ; ++i) { + len = sizeof (headerStr) - 1; + for (i=0; (i < SourceLen) && (len + 3< maxlen) ; ++i) { ch = (unsigned char) source[i]; if ((ch < 32) || (ch > 126) || (ch == 61)) { sprintf(&target[len], "=%02X", ch); @@ -1677,7 +1678,7 @@ void pullquote_message(long msgnum, int forward_attachments, int include_headers strcat(buf, "\n"); msgescputs(buf); } - } + }//// TODO: charset? utf8? /** Unknown weirdness ... don't know how to handle this content type */ else { @@ -3109,15 +3110,17 @@ void post_message(void) } lprintf(9, "Converted: %s\n", references); - if (GetHash(WCC->urlstrings, HKEY("subject"), &U)) { - u = (urlcontent*) U; + if (havebstr("subject")) { + char *Subj; + size_t SLen; /* * make enough room for the encoded string; * plus the QP header */ - len = u->url_data_size * 3 + 32; + Subj = xbstr("subject", &SLen); + len = SLen * 3 + 32; encoded_subject = malloc (len); - len = webcit_rfc2047encode(encoded_subject, len, u->url_data, u->url_data_size); + len = webcit_rfc2047encode(encoded_subject, len, Subj, SLen); if (len < 0) { free (encoded_subject); return; diff --git a/webcit/webcit.c b/webcit/webcit.c index dd6955d68..120d3169d 100644 --- a/webcit/webcit.c +++ b/webcit/webcit.c @@ -1152,7 +1152,7 @@ void upload_handler(char *name, char *filename, char *partnum, char *disp, u->url_data[length] = 0; Put(WC->urlstrings, u->url_key, strlen(u->url_key), u, free_url); - /* lprintf(9, "Key: <%s> Data: <%s>\n", u->url_key, u->url_data); */ +/* lprintf(9, "Key: <%s> len: [%ld] Data: <%s>\n", u->url_key, u->url_data_size, u->url_data);*/ } /** Uploaded files */