diff --git a/chipset_enable.c b/chipset_enable.c
index 0c77f07..4f409cd 100644
--- a/chipset_enable.c
+++ b/chipset_enable.c
@@ -1206,6 +1206,7 @@
 	struct pci_dev *dev = NULL;
 	int ret = -2;		/* Nothing! */
 	int i;
+	char *s;
 
 	/* Now let's try to find the chipset we have... */
 	for (i = 0; chipset_enables[i].vendor_name != NULL; i++) {
@@ -1244,8 +1245,9 @@
 			msg_pinfo("PROBLEMS, continuing anyway\n");
 	}
 
-	msg_pinfo("This chipset supports the following protocols: %s.\n",
-	       flashbuses_to_text(buses_supported));
+	s = flashbuses_to_text(buses_supported);
+	msg_pinfo("This chipset supports the following protocols: %s.\n", s);
+	free(s);
 
 	return ret;
 }
diff --git a/flashrom.c b/flashrom.c
index 13d398e..5bf9645 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -1186,10 +1186,11 @@
 #endif
 		snprintf(location, sizeof(location), "on %s", programmer_table[programmer].name);
 
+	tmp = flashbuses_to_text(flash->bustype);
 	msg_cinfo("%s chip \"%s %s\" (%d kB, %s) %s.\n",
-	       force ? "Assuming" : "Found",
-	       fill_flash->vendor, fill_flash->name, fill_flash->total_size,
-	       flashbuses_to_text(fill_flash->bustype), location);
+		  force ? "Assuming" : "Found", fill_flash->vendor,
+		  fill_flash->name, fill_flash->total_size, tmp, location);
+	free(tmp);
 
 	/* Flash registers will not be mapped if the chip was forced. Lock info
 	 * may be stored in registers, so avoid lock info printing.
diff --git a/print.c b/print.c
index 28c0e18..b9f7a43 100644
--- a/print.c
+++ b/print.c
@@ -28,7 +28,7 @@
 
 /*
  * Return a string corresponding to the bustype parameter.
- * Memory is obtained with malloc() and can be freed with free().
+ * Memory is obtained with malloc() and must be freed with free() by the caller.
  */
 char *flashbuses_to_text(enum chipbustype bustype)
 {
@@ -80,6 +80,7 @@
 	int maxvendorlen = strlen("Vendor") + 1;
 	int maxchiplen = strlen("Device") + 1;
 	const struct flashchip *f;
+	char *s;
 
 	for (f = flashchips; f->name != NULL; f++) {
 		/* Ignore "unknown XXXX SPI chip" entries. */
@@ -152,7 +153,10 @@
 		msg_ginfo("%d", f->total_size);
 		for (i = 0; i < 10 - digits(f->total_size); i++)
 			msg_ginfo(" ");
-		msg_ginfo("%s\n", flashbuses_to_text(f->bustype));
+
+		s = flashbuses_to_text(f->bustype);
+		msg_ginfo("%s\n", s);
+		free(s);
 	}
 }
 
diff --git a/print_wiki.c b/print_wiki.c
index e9ccc8b..6280aff 100644
--- a/print_wiki.c
+++ b/print_wiki.c
@@ -203,6 +203,7 @@
 	int i = 0, c = 1, chipcount = 0;
 	const struct flashchip *f, *old = NULL;
 	uint32_t t;
+	char *s;
 
 	for (f = flashchips; f->name != NULL; f++)
 		chipcount++;
@@ -221,10 +222,11 @@
 			c = !c;
 
 		t = f->tested;
+		s = flashbuses_to_text(f->bustype);
 		printf("|- bgcolor=\"#%s\"\n| %s || %s || %d "
 		       "|| %s || {{%s}} || {{%s}} || {{%s}} || {{%s}}\n",
 		       (c == 1) ? "eeeeee" : "dddddd", f->vendor, f->name,
-		       f->total_size, flashbuses_to_text(f->bustype),
+		       f->total_size, s,
 		       (t & TEST_OK_PROBE) ? "OK" :
 		       (t & TEST_BAD_PROBE) ? "No" : "?3",
 		       (t & TEST_OK_READ) ? "OK" :
@@ -233,6 +235,7 @@
 		       (t & TEST_BAD_ERASE) ? "No" : "?3",
 		       (t & TEST_OK_WRITE) ? "OK" :
 		       (t & TEST_BAD_WRITE) ? "No" : "?3");
+		free(s);
 
 		/* Split table into 'cols' columns. */
 		if (i >= (chipcount / cols + 1)) {
