else if (!strcasecmp(firsttoken, "email")) {
if (!IsEmptyStr(mailto)) strcat(mailto, "<br />");
+ long len;
strcat(mailto,
"<a href=\"display_enter"
"?force_room=_MAIL_?recp=");
urlesc(&mailto[strlen(mailto)], ">");
strcat(mailto, "\">");
- stresc(&mailto[strlen(mailto)], thisvalue, 1, 1);
+ len = strlen(mailto);
+ stresc(mailto+len, SIZ - len, thisvalue, 1, 1);
strcat(mailto, "</A>");
}
else if (!strcasecmp(firsttoken, "tel")) {
char mime_partnum[256];
char mime_name[256];
char mime_filename[256];
+ char escaped_mime_filename[256];
char mime_content_type[256];
char mime_charset[256];
char mime_disposition[256];
attach_links = realloc(attach_links,
(num_attach_links*sizeof(struct attach_link)));
safestrncpy(attach_links[num_attach_links-1].partnum, mime_partnum, 32);
+ urlesc(escaped_mime_filename, mime_filename);
snprintf(attach_links[num_attach_links-1].html, 1024,
"<img src=\"static/diskette_24x.gif\" "
"border=0 align=middle>\n"
" ]<br />\n",
mime_filename,
mime_content_type, mime_length,
- msgnum, mime_partnum, mime_filename,
+ msgnum, mime_partnum, escaped_mime_filename,
msgnum, mime_partnum,
_("View"),
- msgnum, mime_partnum, mime_filename,
+ msgnum, mime_partnum, escaped_mime_filename,
_("Download")
);
}
* \param tabbuf the tabbuffer to add name to
* \param name the name to add to the tabbuffer
*/
-void nametab(char *tabbuf, char *name) {
- stresc(tabbuf, name, 0, 0);
+void nametab(char *tabbuf, long len, char *name) {
+ stresc(tabbuf, len, name, 0, 0);
tabbuf[0] = toupper(tabbuf[0]);
tabbuf[1] = tolower(tabbuf[1]);
tabbuf[2] = tolower(tabbuf[2]);
tabfirst = i * NAMESPERPAGE;
tablast = tabfirst + NAMESPERPAGE - 1;
if (tablast > (num_ab - 1)) tablast = (num_ab - 1);
- nametab(tabfirst_label, addrbook[tabfirst].ab_name);
- nametab(tablast_label, addrbook[tablast].ab_name);
+ nametab(tabfirst_label, 64, addrbook[tabfirst].ab_name);
+ nametab(tablast_label, 64, addrbook[tablast].ab_name);
sprintf(this_tablabel, "%s - %s", tabfirst_label, tablast_label);
tablabels[i] = strdup(this_tablabel);
}
struct wc_attachment *att;
char *encoded;
size_t encoded_length;
+ size_t encoded_strlen;
/** RFC2045 requires this, and some clients look for it... */
serv_puts("MIME-Version: 1.0");
encoded_length = ((att->length * 150) / 100);
encoded = malloc(encoded_length);
if (encoded == NULL) break;
- CtdlEncodeBase64(encoded, att->data, att->length, 1);
+ encoded_strlen = CtdlEncodeBase64(&encoded, att->data, att->length, &encoded_length, 1);
serv_printf("--%s", boundary);
serv_printf("Content-type: %s", att->content_type);
"filename=\"%s\"", att->filename);
serv_puts("Content-transfer-encoding: base64");
serv_puts("");
- serv_write(encoded, strlen(encoded));
+ serv_write(encoded, encoded_strlen);
serv_puts("");
serv_puts("");
free(encoded);