tHeWiZaRdOfDoS, on 31 October 2009 - 07:41 AM, said:
Well, I just noticed (due to a bug report by a tester of mine) that the EMULE_CONFIGBASEDIR is still used in several places where we need write permissions and thus the code will fail in multi-user environments - that's namely:
- the onlinesig.dat file
- the perflog.csv/perflog.mrtg files
- the status.log file
Shouldn't those point to EMULE_CONFIGDIR?
No and EMULE_CONFIGBASEDIR should always have write permission, on a multiuser env this would be for example "C:\Users\Username \AppData\Local\eMule\", which is a folder which eMule created. And we want certrain files there, instead into the config directory (+ "\config") as they actually aren't really config files.
Quote
Also, SecRunAsUser will fail in that cases because
Quote
bSucceeded = bSucceeded && SetObjectPermission(thePrefs.GetMuleDirectory(EMULE_CONFIGBASEDIR), FULLACCESS);
will fail - maybe this should be dropped (not needed if the above mentioned changes are applied)?
No, as written we always need full access to this folder - and this function is only executed if we are in "store in programm directory" mode.