Index: index.c
--- index.c.orig
+++ index.c
@@ -117,7 +117,7 @@ idx_find_entry( char *file, int ntracks, int *tracks,
 	/*
 	 * Search for the first matching entry.
 	 */
-	sprintf(keyval, "%07d", tracks[ntracks - 1] - fuzz);
+	snprintf(keyval, sizeof(keyval), "%07d", tracks[ntracks - 1] - fuzz);
 	key.data = keyval;
 	key.size = 7;
 	if (c = (index->seq)(index, &key, &data, R_CURSOR))
@@ -249,7 +249,7 @@ idx_delete_entry(char *file, int track, int fuzz, unsi
 	/*
 	 * Search for the first matching entry.
 	 */
-	sprintf(keyval, "%07d", track - fuzz);
+	snprintf(keyval, sizeof(keyval), "%07d", track - fuzz);
 	key.data = keyval;
 	key.size = 7;
 	if (c = (index->seq)(index, &key, &data, R_CURSOR))
@@ -354,7 +354,7 @@ idx_write_entry( char *file, int track, unsigned long 
 	key.data = keyval;
 	key.size = 7;
 
-	sprintf(keyval, "%07d", track);
+	snprintf(keyval, sizeof(keyval), "%07d", track);
 
 	status = (index->put)(index, &key, &data, 0);
 
