Skip to content

Commit

Permalink
Improve previous commit
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Jul 12, 2016
1 parent 03ed0e5 commit 26432d7
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 5 deletions.
@@ -1,6 +1,7 @@
package net.aufdemrand.denizen.scripts.commands.core;

import net.aufdemrand.denizen.Settings;
import net.aufdemrand.denizen.utilities.Utilities;
import net.aufdemrand.denizen.utilities.debugging.DebugLog;
import net.aufdemrand.denizen.utilities.debugging.dB;
import net.aufdemrand.denizencore.exceptions.CommandExecutionException;
Expand Down Expand Up @@ -75,8 +76,9 @@ public void execute(ScriptEntry scriptEntry) throws CommandExecutionException {
String directory = URLDecoder.decode(System.getProperty("user.dir"));
File file = new File(directory, fileName.asString());

if (file.getAbsolutePath().replace('\\', '/').contains("Denizen/scripts")) {
dB.echoError(scriptEntry.getResidingQueue(), "Cannot log into the scripts folder!");
file.getParentFile().mkdirs();
if (!Utilities.isSafeFile(file)) {
dB.echoError(scriptEntry.getResidingQueue(), "Cannot log into that file!");
return;
}

Expand Down
Expand Up @@ -2,6 +2,7 @@

import net.aufdemrand.denizen.Settings;
import net.aufdemrand.denizen.utilities.DenizenAPI;
import net.aufdemrand.denizen.utilities.Utilities;
import net.aufdemrand.denizen.utilities.debugging.dB;
import net.aufdemrand.denizencore.exceptions.CommandExecutionException;
import net.aufdemrand.denizencore.exceptions.InvalidArgumentsException;
Expand Down Expand Up @@ -295,11 +296,11 @@ public void execute(final ScriptEntry scriptEntry) throws CommandExecutionExcept
}
File fileObj = new File(DenizenAPI.getCurrentInstance().
getDataFolder().getAbsolutePath() + "/" + filename.asString());
if (fileObj.getAbsolutePath().replace('\\', '/').contains("Denizen/scripts")) {
dB.echoError(scriptEntry.getResidingQueue(), "Cannot edit the scripts folder!");
fileObj.getParentFile().mkdirs();
if (!Utilities.isSafeFile(fileObj)) {
dB.echoError(scriptEntry.getResidingQueue(), "Cannot edit that file!");
return;
}
fileObj.getParentFile().mkdirs();
FileWriter fw = new FileWriter(fileObj.getAbsoluteFile());
BufferedWriter writer = new BufferedWriter(fw);
writer.write(yamls.get(id).saveToString());
Expand Down
16 changes: 16 additions & 0 deletions src/main/java/net/aufdemrand/denizen/utilities/Utilities.java
Expand Up @@ -31,6 +31,22 @@
*/
public class Utilities {

public static boolean isSafeFile(File f) {
try {
String lown = CoreUtilities.toLowerCase(f.getCanonicalPath());
if (lown.contains("denizen/config.yml")) {
return false;
}
if (lown.contains("denizen/scripts/")) {
return false;
}
return true;
}
catch (Exception ex) {
dB.echoError(ex);
return false;
}
}

/**
* Gets a Location within a range that an entity can walk in.
Expand Down

0 comments on commit 26432d7

Please sign in to comment.