$OpenBSD: patch-src_discdb_c,v 1.6 2017/08/29 16:43:59 landry Exp $
overlapping snprintf
Index: src/discdb.c
--- src/discdb.c.orig
+++ src/discdb.c
@@ -611,9 +611,11 @@ gboolean DiscDBRead(DiscInfo *disc,DiscDBServer *serve
 
   /* Both disc title and artist have been stuffed in the title field, so the
      need to be separated */
-  
-  DiscDBParseTitle(data->data_title,data->data_title,data->data_artist,"/");
+  inbuffer=strdup(data->data_title);
 
+  DiscDBParseTitle(inbuffer,data->data_title,data->data_artist,"/");
+
+  free(inbuffer);
   free(result);
 
   /* Don't allow the genre to be overwritten */
@@ -667,6 +669,7 @@ int DiscDBReadDiscData(DiscInfo *disc,DiscData *ddata,
   FILE *discdb_data=NULL;
   int index,genre;
   char root_dir[256],file[256],inbuf[512];
+  char* buf;
   struct stat st;
   
   g_snprintf(root_dir,256,"%s/.cddb",getenv("HOME"));
@@ -724,8 +727,11 @@ int DiscDBReadDiscData(DiscInfo *disc,DiscData *ddata,
 
   /* Both disc title and artist have been stuffed in the title field, so the
      need to be separated */
+  buf = strdup(ddata->data_title);
 
-  DiscDBParseTitle(ddata->data_title,ddata->data_title,ddata->data_artist,"/");
+  DiscDBParseTitle(buf,ddata->data_title,ddata->data_artist,"/");
+
+  free(buf);
 
   if(!DiscDBUTF8Validate(disc,ddata)) {
     DiscDBConvertEncoding(disc,ddata,strcasecmp(encoding,"UTF-8")?
