fix security hole in helper

This commit is contained in:
arcan1s
2014-08-09 22:33:13 +04:00
parent 2ff76e9c8e
commit 41f58c1448
9 changed files with 79 additions and 25 deletions

View File

@ -59,9 +59,9 @@ QStringList ControlAdaptor::Settings()
}
bool ControlAdaptor::Update(const QString configPath)
bool ControlAdaptor::Update()
{
helper->updateConfiguration(configPath);
helper->updateConfiguration();
return true;
}

View File

@ -40,7 +40,7 @@ public slots:
bool Active();
bool Close();
QStringList Settings();
bool Update(const QString configPath = QString(""));
bool Update();
// netctlCommand
bool autoDisableAll();
bool autoEnable(const QString profile);

View File

@ -32,10 +32,10 @@
NetctlHelper::NetctlHelper(QObject *parent, QMap<QString, QVariant> args)
: QObject(parent),
initConfigPath(args[QString("config")].toString()),
configPath(args[QString("config")].toString()),
debug(args[QString("debug")].toBool())
{
updateConfiguration(initConfigPath);
updateConfiguration();
}
@ -108,6 +108,7 @@ QMap<QString, QString> NetctlHelper::getDefault()
settings[QString("CTRL_GROUP")] = QString("users");
settings[QString("FORCE_SUDO")] = QString("false");
settings[QString("HELPER_PATH")] = QString("/usr/bin/netctlgui-helper");
settings[QString("HELPER_SERVICE")] = QString("netctlgui-helper.service");
settings[QString("IFACE_DIR")] = QString("/sys/class/net/");
settings[QString("LANGUAGE")] = QString("en");
settings[QString("NETCTL_PATH")] = QString("/usr/bin/netctl");
@ -133,7 +134,7 @@ QMap<QString, QString> NetctlHelper::getDefault()
}
QMap<QString, QString> NetctlHelper::getSettings(const QString configPath)
QMap<QString, QString> NetctlHelper::getSettings()
{
if (debug) qDebug() << "[NetctlHelper]" << "[getSettings]";
@ -160,15 +161,13 @@ QMap<QString, QString> NetctlHelper::getSettings(const QString configPath)
}
void NetctlHelper::updateConfiguration(QString configPath)
void NetctlHelper::updateConfiguration()
{
if (debug) qDebug() << "[NetctlHelper]" << "[updateConfiguration]";
deleteInterface();
if (configPath.isEmpty())
configPath = initConfigPath;
configuration = getSettings(configPath);
configuration = getSettings();
createInterface();
}

View File

@ -34,17 +34,17 @@ public:
QStringList printSettings();
public slots:
void updateConfiguration(QString configPath = QString(""));
void updateConfiguration();
void quitHelper();
private:
QString initConfigPath;
QString configPath;
QMap<QString, QString> configuration;
bool debug;
void createInterface();
void deleteInterface();
QMap<QString, QString> getDefault();
QMap<QString, QString> getSettings(const QString configPath);
QMap<QString, QString> getSettings();
};