From 6cd686fbf504a9eeb66caa3a4e4b9f9e1aa8b5b0 Mon Sep 17 00:00:00 2001 From: Ben Gruver Date: Sat, 14 Sep 2013 11:35:53 -0700 Subject: [PATCH] Make windows reserved filename detection more robust This checks for more reserved filenames than just aux --- .../org/jf/util/ClassFileNameHandler.java | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/util/src/main/java/org/jf/util/ClassFileNameHandler.java b/util/src/main/java/org/jf/util/ClassFileNameHandler.java index 73ac6b9d..5619478c 100644 --- a/util/src/main/java/org/jf/util/ClassFileNameHandler.java +++ b/util/src/main/java/org/jf/util/ClassFileNameHandler.java @@ -127,22 +127,26 @@ public class ClassFileNameHandler { } private static boolean testForWindowsReservedFileNames(File path) { - File f = new File(path, "aux.smali"); - if (f.exists()) { - return false; - } + String[] reservedNames = new String[]{"aux", "con", "com1", "com9", "lpt1", "com9"}; - try { - FileWriter writer = new FileWriter(f); - writer.write("test"); - writer.flush(); - writer.close(); - f.delete(); //doesn't throw IOException - return false; - } catch (IOException ex) { - //if an exception occured, it's likely that we're on a windows system. - return true; + for (String reservedName: reservedNames) { + File f = new File(path, reservedName + ".smali"); + if (f.exists()) { + continue; + } + + try { + FileWriter writer = new FileWriter(f); + writer.write("test"); + writer.flush(); + writer.close(); + f.delete(); //doesn't throw IOException + } catch (IOException ex) { + //if an exception occured, it's likely that we're on a windows system. + return true; + } } + return false; } private static Pattern reservedFileNameRegex = Pattern.compile("^CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9]$",