[Pkg-owncloud-commits] [owncloud-client] 15/159: application: --confdir option with invalid direcotry now exit
Sandro Knauß
hefee-guest at moszumanska.debian.org
Fri May 1 13:05:16 UTC 2015
This is an automated email from the git hooks/post-receive script.
hefee-guest pushed a commit to branch master
in repository owncloud-client.
commit e81d1ab9b8f96dada21d4f1419f48f974033c92b
Author: Olivier Goffart <ogoffart at woboq.com>
Date: Mon Mar 23 14:59:29 2015 +0100
application: --confdir option with invalid direcotry now exit
Show an error and exit if an invalid directory (eg, a file) is passed to --confdir
Fixes: #2453
---
src/gui/application.cpp | 5 ++++-
src/libsync/configfile.cpp | 6 ++++--
src/libsync/configfile.h | 2 +-
3 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/src/gui/application.cpp b/src/gui/application.cpp
index eb2fac6..1e554cd 100644
--- a/src/gui/application.cpp
+++ b/src/gui/application.cpp
@@ -403,7 +403,10 @@ void Application::parseOptions(const QStringList &options)
} else if (option == QLatin1String("--confdir")) {
if (it.hasNext() && !it.peekNext().startsWith(QLatin1String("--"))) {
QString confDir = it.next();
- ConfigFile::setConfDir( confDir );
+ if (!ConfigFile::setConfDir( confDir )) {
+ std::cerr << "Invalid path passed to --confdir" << std::endl;
+ std::exit(1);
+ }
} else {
showHelp();
}
diff --git a/src/libsync/configfile.cpp b/src/libsync/configfile.cpp
index 47850aa..ba63864 100644
--- a/src/libsync/configfile.cpp
+++ b/src/libsync/configfile.cpp
@@ -85,10 +85,10 @@ ConfigFile::ConfigFile()
// qDebug() << Q_FUNC_INFO << "Loading config: " << config << " (URL is " << settings.value("url").toString() << ")";
}
-void ConfigFile::setConfDir(const QString &value)
+bool ConfigFile::setConfDir(const QString &value)
{
QString dirPath = value;
- if( dirPath.isEmpty() ) return;
+ if( dirPath.isEmpty() ) return false;
QFileInfo fi(dirPath);
if ( !fi.exists() && !fi.isAbsolute() ) {
@@ -101,7 +101,9 @@ void ConfigFile::setConfDir(const QString &value)
dirPath = fi.absoluteFilePath();
qDebug() << "** Using custom config dir " << dirPath;
_confDir=dirPath;
+ return true;
}
+ return false;
}
bool ConfigFile::optionalDesktopNotifications() const
diff --git a/src/libsync/configfile.h b/src/libsync/configfile.h
index 4572c9f..54652b6 100644
--- a/src/libsync/configfile.h
+++ b/src/libsync/configfile.h
@@ -96,7 +96,7 @@ public:
void setUploadLimit(int kbytes);
void setDownloadLimit(int kbytes);
- static void setConfDir(const QString &value);
+ static bool setConfDir(const QString &value);
bool optionalDesktopNotifications() const;
void setOptionalDesktopNotifications(bool show);
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git
More information about the Pkg-owncloud-commits
mailing list