summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Batischev <eual.jp@gmail.com>2017-08-27 22:37:02 +0300
committerAlexander Batischev <eual.jp@gmail.com>2017-09-16 21:01:06 +0300
commitc8fea2f60c18ed30bdd1bb6f798e994e51a58260 (patch)
tree3202d47e820603ec4cc5921b61ecef5ea9389eec
parent1bc93b8d12a48279a11d8ee3613d31cc04e55ed5 (diff)
Work around shell code in podcast names (#598)
-rw-r--r--src/pb_controller.cpp6
-rw-r--r--src/queueloader.cpp2
2 files changed, 4 insertions, 4 deletions
diff --git a/src/pb_controller.cpp b/src/pb_controller.cpp
index e46594f3..a6581f5e 100644
--- a/src/pb_controller.cpp
+++ b/src/pb_controller.cpp
@@ -367,9 +367,9 @@ void pb_controller::play_file(const std::string& file) {
if (player == "")
return;
cmdline.append(player);
- cmdline.append(" \"");
- cmdline.append(utils::replace_all(file,"\"", "\\\""));
- cmdline.append("\"");
+ cmdline.append(" '");
+ cmdline.append(utils::replace_all(file,"'", "%27"));
+ cmdline.append("'");
stfl::reset();
utils::run_interactively(cmdline, "pb_controller::play_file");
}
diff --git a/src/queueloader.cpp b/src/queueloader.cpp
index 15047b6e..980f185d 100644
--- a/src/queueloader.cpp
+++ b/src/queueloader.cpp
@@ -130,7 +130,7 @@ std::string queueloader::get_filename(const std::string& str) {
strftime(lbuf, sizeof(lbuf), "%Y-%b-%d-%H%M%S.unknown", localtime(&t));
fn.append(lbuf);
} else {
- fn.append(base);
+ fn.append(utils::replace_all(base, "'", "%27"));
}
return fn;
}