[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