mshow: safely print filenames

pull/28/head
Leah Neukirchen 7 years ago
parent f8a305f441
commit bbbde2616b

@ -165,6 +165,16 @@ mime_filename(struct message *msg)
static void choose_alternative(struct message *msg, int depth);
void
print_filename(char *filename)
{
if (filename) {
printf(" name=\"");
safe_u8putstr(filename, strlen(filename), stdout);
printf("\"");
}
}
blaze822_mime_action
render_mime(int depth, struct message *msg, char *body, size_t bodylen)
{
@ -181,8 +191,7 @@ render_mime(int depth, struct message *msg, char *body, size_t bodylen)
for (i = 0; i < depth+1; i++)
printf("--- ");
printf("%d: %s size=%zd", mimecount, mt, bodylen);
if (filename)
printf(" name=\"%s\"", filename);
print_filename(filename);
char *cmd;
blaze822_mime_action r = MIME_CONTINUE;
@ -356,8 +365,7 @@ list_mime(int depth, struct message *msg, char *body, size_t bodylen)
char *filename = mime_filename(msg);
printf(" %*.s%d: %s size=%zd", depth*2, "", ++mimecount, mt, bodylen);
if (filename)
printf(" name=\"%s\"", filename);
print_filename(filename);
printf("\n");
return MIME_CONTINUE;
@ -435,7 +443,8 @@ extract_mime(int depth, struct message *msg, char *body, size_t bodylen)
fwrite(body, 1, bodylen, stdout);
} else { // extract all named attachments
if (filename) {
printf("%s\n", filename);
safe_u8putstr(filename, strlen(filename), stdout);
printf("\n");
writefile(filename, body, bodylen);
}
}
@ -489,7 +498,8 @@ extract_mime(int depth, struct message *msg, char *body, size_t bodylen)
fwrite(body, 1, bodylen, stdout);
}
} else {
printf("%s\n", filename);
safe_u8putstr(filename, strlen(filename), stdout);
printf("\n");
writefile(filename, body, bodylen);
}
}

Loading…
Cancel
Save