control: tag -1 +patch

I think the problem lays in main.cpp :

   81     // Set configuration directory
   82     //sprintf(writedir, "%s.%s", userdir, application);
   83     sprintf(writedir, "%s%s", userdir, application);
   84     if(!PHYSFS_setWriteDir(writedir)) {
   85         // try to create the directory
   86         char* mkdir = new char[strlen(application) + 2];
   87         sprintf(mkdir, "%s", application);
   88         if(!PHYSFS_setWriteDir(userdir) || !PHYSFS_mkdir(mkdir)) {
   89             std::ostringstream msg;
   90             msg << "Failed creating configuration directory '" <<
   91                 writedir << "': " << PHYSFS_getLastError();

Looks like that the author forgot to concat the "userdir" and "mkdir"
before really creating it. If that's where the root of problem lies,
a possible fix could be:

    char* mkdir = new char[strlen(userdir) + strlen(application) + 2];
    sprintf(mkdir, "%s%s", userdir, applicatoin);
    if(!PHYSFS_setWriteDir(userdir) || !PHYSFS_mkdir(mkdir)) {

Not verified. Hope it helps.

Attachment: signature.asc
Description: PGP signature

Reply via email to