Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37736276
en ru br
Репозитории ALT

Группа :: Игры/Приключения
Пакет: instead-launcher

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: instead-launcher-dropgid.patch
Скачать


п╒п╬п╩я▄п╨п╬ п╡ instead-launcher-0.6.3.new: instead-launcher.desktop
п╒п╬п╩я▄п╨п╬ п╡ instead-launcher-0.6.3.new: instead-launcher_ru.qm
diff -ur instead-launcher-0.6.3/mainwindow.cpp instead-launcher-0.6.3.new/mainwindow.cpp
--- instead-launcher-0.6.3/mainwindow.cpp	2015-04-21 13:41:28.000000000 +0000
+++ instead-launcher-0.6.3.new/mainwindow.cpp	2015-04-21 14:08:50.372400221 +0000
@@ -8,6 +8,8 @@
 #include "global.h"
 #include "urlresolver.h"
 #include "aboutwidget.h"
+#include <unistd.h>
+#include <sys/types.h>
 
 class NetGameItem: public QTreeWidgetItem {
     public:
@@ -275,12 +277,15 @@
 
 void MainWindow::playSelectedGame()
 {
+    gid_t egid;
     if (!m_ui->listGames->currentItem()) return;
     LocalGameItem *item = static_cast<LocalGameItem *>(m_ui->listGames->currentItem());
     QString gameName = item->info().name();
     QString insteadPath = m_ui->lineInsteadPath->text();
     QString gamesPath = m_ui->gamesDir->text();
     if (gamesPath.right(1) != QDir::separator()) gamesPath += QDir::separator();
+    egid = getegid();
+    setegid(getgid());
     m_process = new QProcess();
 
     QStringList arguments;
@@ -303,6 +308,7 @@
     connect( m_process, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT( processFinished(int, QProcess::ExitStatus)) );
 
     m_process->start(insteadPath, arguments); // may startDetached be better? :)
+    setegid(egid);
 
 }
 
diff -ur instead-launcher-0.6.3/updatewidget.cpp instead-launcher-0.6.3.new/updatewidget.cpp
--- instead-launcher-0.6.3/updatewidget.cpp	2015-04-21 13:41:28.000000000 +0000
+++ instead-launcher-0.6.3.new/updatewidget.cpp	2015-04-21 14:08:27.076897636 +0000
@@ -2,6 +2,8 @@
 #include "urlresolver.h"
 #include "config.h"
 #include "global.h"
+#include <unistd.h>
+#include <sys/types.h>
 
 // -1  ver1 <  ver2
 // 0   ver1 == ver2
@@ -204,6 +206,7 @@
 }
 
 QString UpdateWidget::detectInsteadVersion( QString insteadBinary ) {
+    gid_t egid;
     QString version = "0";
     QDir tempDir = QDir::temp();
     tempDir.remove("instead-version/main.lua");
@@ -231,11 +234,14 @@
             arguments << "-nostdgames";
             arguments << "-gamespath" << QDir::toNativeSeparators(tempDir.absolutePath());
             QFileInfo info(insteadBinary);
+	    egid = getegid();
+	    setegid(getgid());
             QProcess process(this);
             process.setWorkingDirectory( info.path() );
             qDebug() << "launch " << insteadBinary << " with args " << arguments;
             // execute doesn't work for windows instead version, sorry :(
             process.start( insteadBinary, arguments );
+	    setegid(egid);
             process.waitForFinished(20000);
             qDebug() << "instead finished with exit code " << process.exitCode();
             if (process.exitCode() != 123) {
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin