--- parse.c +++ parse.c @@ -155,7 +155,7 @@ XrmValue value; char *str_type [10]; char *displayname; - char buf [64]; + char buf [MAXPATHLEN]; char *cmd_name = strrchr ( *argv, '/' ); if ( cmd_name == 0 ) @@ -174,7 +174,10 @@ * En fait, c'est a cause de la fonction XMerge... qui est destructrice * Malheureusement il faut passer par un fichier intermediaire. */ - (void) sprintf (buf, "/tmp/xcoral_db%ld", (long)getuid()); + (void)snprintf( buf, MAXPATHLEN, "/%s/xcoral_db%ld" + , (getenv("TMPDIR") ? (char*)getenv("TMPDIR") : "/tmp") + , (long)getuid() + ); XrmPutFileDatabase ( commandlineDB, buf ); if ( (savecommandlineDB = XrmGetFileDatabase ( buf )) != 0 ) (void) unlink ( buf ) ;