Use quotes less. Fixes browsing to directories with spaces in them issue.

git-svn-id: file:///home/svn/framework3/trunk@12222 4d416f70-5f16-0410-b530-b9f4589650da
This commit is contained in:
Matt Weeks 2011-04-03 00:26:25 +00:00
parent 86fac4ef95
commit aa72f18ec2
10 changed files with 36 additions and 30 deletions

Binary file not shown.

View File

@ -1566,8 +1566,8 @@ nameloop: for (int i = 0; i < names.length; i++) {
return;
Map res = (Map) rpcConn.execute("console.create");
registerConsole(res, true, InteractWindow.runCmdWindow(rpcConn, res,
"db_export -f "+type+" \""+MsfguiApp.doubleBackslashes(
MsfguiApp.fileChooser.getSelectedFile().getCanonicalPath())+"\""));
"db_export -f "+type+" "+MsfguiApp.escapeBackslashes(
MsfguiApp.fileChooser.getSelectedFile().getCanonicalPath())));
} catch (MsfException mex) {
JOptionPane.showMessageDialog(getFrame(), mex);
} catch (IOException iex) {

View File

@ -180,7 +180,7 @@ public class MeterpFileBrowser extends MsfFrame {
return;
String clickedFile = mainTable.getValueAt(indx, 0).toString();
if (files.get(clickedFile).equals("dir")) {
executeCommand("cd \"" + clickedFile + "\"");
executeCommand("cd " + MsfguiApp.escapeBackslashes(clickedFile));
getFiles();
} else {
download();
@ -202,9 +202,9 @@ public class MeterpFileBrowser extends MsfFrame {
for(int indx : indxs){
String clickedFile = mainTable.getValueAt(indx, 0).toString();
if (files.get(clickedFile).equals("dir"))
executeCommand("rmdir \"" + clickedFile + "\"");
executeCommand("rmdir " + MsfguiApp.escapeBackslashes(clickedFile));
else
executeCommand("rm \"" + clickedFile + "\"");
executeCommand("rm " + MsfguiApp.escapeBackslashes(clickedFile));
}
getFiles();
}
@ -479,8 +479,8 @@ public class MeterpFileBrowser extends MsfFrame {
fchooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
if(fchooser.showOpenDialog(this) != JFileChooser.APPROVE_OPTION)
return;
executeCommand("lcd \""+MsfguiApp.cleanBackslashes(fchooser.getSelectedFile().getParent()) + "\"");
executeCommand("upload \""+fchooser.getSelectedFile().getName() + "\"");
executeCommand("lcd "+MsfguiApp.escapeBackslashes(fchooser.getSelectedFile().getParent()));
executeCommand("upload " + MsfguiApp.escapeBackslashes(fchooser.getSelectedFile().getName()));
getFiles();
}//GEN-LAST:event_uploadButtonActionPerformed
@ -492,7 +492,7 @@ public class MeterpFileBrowser extends MsfFrame {
String newDir = JOptionPane.showInputDialog(this,"New directory name","Choose Directory Name",JOptionPane.QUESTION_MESSAGE);
if(newDir == null)
return;
executeCommand("mkdir \""+newDir + "\"");
executeCommand("mkdir " + MsfguiApp.escapeBackslashes(newDir));
getFiles();
}//GEN-LAST:event_dirButtonActionPerformed
@ -525,7 +525,7 @@ public class MeterpFileBrowser extends MsfFrame {
if(addressField.getText().equals("/"))
executeCommand("cd /../"); //Weird annonying bug. "cd /" doesn't work
else
executeCommand("cd \"" + MsfguiApp.doubleBackslashes(addressField.getText()) + "\"");
executeCommand("cd " + MsfguiApp.escapeBackslashes(addressField.getText()));
getFiles();
}
private void goButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_goButtonActionPerformed
@ -559,8 +559,8 @@ public class MeterpFileBrowser extends MsfFrame {
fchooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
if(fchooser.showSaveDialog(this) != JFileChooser.APPROVE_OPTION)
return;
executeCommand("lcd \""+MsfguiApp.cleanBackslashes(fchooser.getSelectedFile().toString()) + "\"");
executeCommand("lcd " + MsfguiApp.escapeBackslashes(fchooser.getSelectedFile().toString()));
for(int indx : mainTable.getSelectedRows())
executeCommand("download \""+mainTable.getValueAt(indx, 0) + "\"");
executeCommand("download " + MsfguiApp.escapeBackslashes(mainTable.getValueAt(indx, 0).toString()));
}
}

View File

@ -295,7 +295,13 @@ public class MsfguiApp extends SingleFrameApplication {
public static String cleanBackslashes(String input){
return backslash.matcher(input).replaceAll("/");
}
public static String doubleBackslashes(String input){
return backslash.matcher(input).replaceAll("\\\\\\\\");
public static String escapeBackslashes(String input){
StringBuilder output = new StringBuilder();
for(char c : input.toCharArray()){
if(c == '\\' || c == ' ' || c == '\'' || c == '"')
output.append('\\');
output.append(c);
}
return output.toString();
}
}

View File

@ -132,15 +132,15 @@ public class MulticommandOptionsDialog extends OptionsDialog {
private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed
StringBuilder cmd = new StringBuilder("multicommand ");
if(outputFileField.getText().length() > 0)
cmd.append(" -f \"").append(MsfguiApp.doubleBackslashes(outputFileField.getText())).append("\"");
cmd.append(" -f ").append(MsfguiApp.escapeBackslashes(outputFileField.getText()));
String commandList = commandsArea.getText();
if(commandFileField.getText().length() > 0){
cmd.append(" -rc \"").append(MsfguiApp.doubleBackslashes(commandFileField.getText())).append("\"");
cmd.append(" -rc ").append(MsfguiApp.escapeBackslashes(commandFileField.getText()));
}else if(commandList.length() > 0){
String [] cmds = commandList.split("\n");
cmd.append(" -cl ");
for(int i = 0; i < cmds.length; i++){
cmd.append("\"").append(MsfguiApp.doubleBackslashes(cmds[i].trim())).append("\"");
cmd.append(MsfguiApp.escapeBackslashes(cmds[i].trim()));
if (i < cmds.length - 1)
cmd.append(',');
}

View File

@ -162,7 +162,7 @@ public class NetenumOptionsDialog extends OptionsDialog {
if(forwardBox.isSelected())
cmd.append(" -fl");
if(fileField.getText().length() > 0)
cmd.append(" -hl \"").append(MsfguiApp.doubleBackslashes(fileField.getText())).append("\"");
cmd.append(" -hl ").append(MsfguiApp.escapeBackslashes(fileField.getText()));
if(domainField.getText().length() > 0)
cmd.append(" -d ").append(domainField.getText());
if(mxNsBox.isSelected())

View File

@ -270,9 +270,9 @@ public class ScheduleTaskOptionsDialog extends OptionsDialog {
if(usernameField.getText().length() > 0)
cmd.append(" -u ").append(usernameField.getText()).append(" -p ").append(passwordField.getText());
if(uploadField.getText().length() > 0)
cmd.append(" -e \"").append(MsfguiApp.doubleBackslashes(uploadField.getText())).append("\" -o \"")
.append(MsfguiApp.doubleBackslashes(uploadedArgs.getText())).append("\"");
cmd.append(" -c \"").append(MsfguiApp.doubleBackslashes(commandField.getText())).append("\"");
cmd.append(" -e ").append(MsfguiApp.escapeBackslashes(uploadField.getText())).append(" -o ")
.append(MsfguiApp.escapeBackslashes(uploadedArgs.getText()));
cmd.append(" -c ").append(MsfguiApp.escapeBackslashes(commandField.getText()));
command = cmd.toString();
setVisible(false);
}//GEN-LAST:event_goButtonActionPerformed

View File

@ -127,14 +127,14 @@ public class SearchDwldOptionsDialog extends OptionsDialog {
private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed
StringBuilder cmd = new StringBuilder("file_collector");
if(dirField.getText().length() > 0)
cmd.append(" -d \'").append(MsfguiApp.doubleBackslashes(dirField.getText())).append("\'");
cmd.append(" -d ").append(MsfguiApp.escapeBackslashes(dirField.getText()));
cmd.append(" -l ").append(outputDirField.getText());
if(recursiveBox.isSelected())
cmd.append(" -r ");
cmd.append(" -f ").append(searchPatternField.getText());
String tempFileName = MsfguiApp.getTempFilename("foundfiles", ".txt");
cmd.append(" -o \"").append(MsfguiApp.doubleBackslashes(tempFileName)).append("\"");
cmd.append(" -i \"").append(MsfguiApp.doubleBackslashes(tempFileName)).append("\"");
cmd.append(" -o ").append(MsfguiApp.escapeBackslashes(tempFileName));
cmd.append(" -i ").append(MsfguiApp.escapeBackslashes(tempFileName));
command = cmd.toString();
doClose();
}//GEN-LAST:event_okButtonActionPerformed

View File

@ -141,10 +141,10 @@ public class UploadexecOptionsDialog extends OptionsDialog {
private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed
StringBuilder cmd = new StringBuilder("uploadexec ");
if(optionsField.getText().length() > 0)
cmd.append(" -o \"").append(MsfguiApp.doubleBackslashes(optionsField.getText())).append("\"");
cmd.append(" -o ").append(MsfguiApp.escapeBackslashes(optionsField.getText()));
if(pathField.getText().length() > 0)
cmd.append(" -p \"").append(MsfguiApp.doubleBackslashes(pathField.getText())).append("\"");
cmd.append(" -e \"").append(MsfguiApp.doubleBackslashes(fileField.getText())).append("\"");
cmd.append(" -p ").append(MsfguiApp.escapeBackslashes(pathField.getText()));
cmd.append(" -e ").append(MsfguiApp.escapeBackslashes(fileField.getText()));
if(verboseBox.isSelected())
cmd.append(" -v");
if(removeBox.isSelected())

View File

@ -141,13 +141,13 @@ public class WinbfOptionsDialog extends OptionsDialog {
private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed
StringBuilder cmd = new StringBuilder("winbf ");
if(targetField.getText().length() > 0)
cmd.append(" -t \"").append(MsfguiApp.doubleBackslashes(targetField.getText())).append("\"");
cmd.append(" -t ").append(MsfguiApp.escapeBackslashes(targetField.getText()));
if(userField.getText().length() > 0)
cmd.append(" -L \"").append(MsfguiApp.doubleBackslashes(userField.getText())).append("\"");
cmd.append(" -L ").append(MsfguiApp.escapeBackslashes(userField.getText()));
if(passwordField.getText().length() > 0)
cmd.append(" -p \"").append(MsfguiApp.doubleBackslashes(passwordField.getText())).append("\"");
cmd.append(" -p ").append(MsfguiApp.escapeBackslashes(passwordField.getText()));
if(loginField.getText().length() > 0)
cmd.append(" -l \"").append(MsfguiApp.doubleBackslashes(loginField.getText())).append("\"");
cmd.append(" -l ").append(MsfguiApp.escapeBackslashes(loginField.getText()));
if(checkPolicyBox.isSelected())
cmd.append(" -cp");
command = cmd.toString();