diff --git a/src/plugins/FilePlugin/FilePlugin.c b/src/plugins/FilePlugin/FilePlugin.c index 79354c5..273c79e 100644 --- a/src/plugins/FilePlugin/FilePlugin.c +++ b/src/plugins/FilePlugin/FilePlugin.c @@ -48,7 +48,7 @@ static pthread_mutex_t file_mutex; unsigned long preview = 0; -char path[256]; +char path[300]; static int counter = 0; static int timeo = 0; @@ -875,13 +875,15 @@ __declspec(dllexport) fp_symbols[1].next = pl->symbols.next; pl->symbols.next = fp_symbols; } - if(path) free(path); dirp = (argc > 1)? argv[1] : getenv("TEMP"); - if(strlen(dirp) > 200 || strchr(dirp, '%')) return (13001); + if(strlen(dirp) > 200 || strchr(dirp, '%')) { + fprintf(stderr, "FilePlugin: invalid directory path: %s\n", dirp); + return (13001); + } #ifdef _WIN32 - sprintf(path, "%s\\%%d.tmp", dirp); + sprintf(path, "%.256s\\%%07d.tmp", dirp); #else - sprintf(path, "%s/%%d.tmp", dirp); + sprintf(path, "%.256s/%%07d.tmp", dirp); #endif if(argc > 2) preview = atoi(argv[2]); if(!preview) preview = 32768; diff --git a/src/version.h b/src/version.h index 8d912b7..19350d5 100644 --- a/src/version.h +++ b/src/version.h @@ -1,2 +1,2 @@ #define VERSION "3proxy-0.8b-devel" -#define BUILDDATE "150901162209" +#define BUILDDATE "150904002243"