diff --git a/src/syncterm/term.c b/src/syncterm/term.c
index 6b5ca259b49b9d740c8ea1245756e41072cf1910..95daeb15012f274d8402841cbf6152c071b4fced 100644
--- a/src/syncterm/term.c
+++ b/src/syncterm/term.c
@@ -2230,7 +2230,7 @@ capture_control(struct bbslist *bbs)
 							if ((tm = localtime(&t)) != NULL) { // The null-terminator
                                                                                             // overwrites the first
                                                                                             // byte of filesize
-								sprintf(sauce.date, "%04u%02u%02u",
+								snprintf(sauce.date, sizeof(sauce.date), "%04u%02u%02u",
 								    1900 + tm->tm_year, 1 + tm->tm_mon, tm->tm_mday);
 							}
 							sauce.filesize = LE_INT32(ftell(fp)); // LE
@@ -2949,7 +2949,7 @@ draw_ppm_str_handler(char *str, size_t slen, char *fn, void *apcd)
 	}
 
 	if (mask != NULL) {
-		if (asprintf(&maskfn, "%s%s", fn, mask) < 0)
+		if (asprintf(&maskfn, "%s%s", fn, (char*)mask) < 0)
 			goto done;
 	}
 
@@ -3231,7 +3231,7 @@ paste_pixmap(char *str, size_t slen, char *fn, void *apcd)
 	}
 
 	if (mask != NULL) {
-		if (asprintf(&maskfn, "%s%s", fn, mask) < 0)
+		if (asprintf(&maskfn, "%s%s", fn, (char*)mask) < 0)
 			goto done;
 	}