fix: 修改了process.start函数参数的问题
修改了将参数以字符串拼接形式传入process.start中的问题,避免了命令注入。 Log: 修改了process.start函数参数的问题
This commit is contained in:
parent
e68eba8c1f
commit
94aa8b835e
@ -807,7 +807,8 @@ Categorytype Launcher::getXCategory(const Item *item)
|
|||||||
QString Launcher::queryPkgNameWithDpkg(const QString &itemPath)
|
QString Launcher::queryPkgNameWithDpkg(const QString &itemPath)
|
||||||
{
|
{
|
||||||
QProcess process;
|
QProcess process;
|
||||||
process.start("dpkg -S " + itemPath);
|
QStringList args {"-S", itemPath};
|
||||||
|
process.start("dpkg", args);
|
||||||
if (!process.waitForFinished())
|
if (!process.waitForFinished())
|
||||||
return QString();
|
return QString();
|
||||||
|
|
||||||
@ -845,12 +846,14 @@ QString Launcher::queryPkgName(const QString &itemID, const QString &itemPath)
|
|||||||
// dpkg命令检查通过路径匹配的包是否存在
|
// dpkg命令检查通过路径匹配的包是否存在
|
||||||
QString pkgName(result[1].str().c_str());
|
QString pkgName(result[1].str().c_str());
|
||||||
QProcess process;
|
QProcess process;
|
||||||
process.start("dpkg -s " + pkgName);
|
QStringList args0 {"-s", pkgName};
|
||||||
|
process.start("dpkg", args0);
|
||||||
if (process.waitForFinished())
|
if (process.waitForFinished())
|
||||||
return pkgName;
|
return pkgName;
|
||||||
|
|
||||||
// 当包不存在则使用dpkg -S来查找包
|
// 当包不存在则使用dpkg -S来查找包
|
||||||
process.start("dpkg -S" + pkgName);
|
QStringList args1 {"-S", pkgName};
|
||||||
|
process.start("dpkg", args1);
|
||||||
if (!process.waitForFinished())
|
if (!process.waitForFinished())
|
||||||
return QString();
|
return QString();
|
||||||
|
|
||||||
@ -1062,7 +1065,8 @@ void Launcher::uninstallFlatpak(DesktopInfo &info, const Item &item)
|
|||||||
QString ref = QString("app/%1/%2/%3").arg(flat.name.c_str()).arg(flat.arch.c_str()).arg(flat.branch.c_str());
|
QString ref = QString("app/%1/%2/%3").arg(flat.name.c_str()).arg(flat.arch.c_str()).arg(flat.branch.c_str());
|
||||||
qInfo() << "uninstall flatpak ref= " << ref;
|
qInfo() << "uninstall flatpak ref= " << ref;
|
||||||
QProcess process;
|
QProcess process;
|
||||||
process.start("flatpak " + sysOrUser + " uninstall " + ref);
|
QStringList args {sysOrUser, "uninstall", ref};
|
||||||
|
process.start("flatpak", args);
|
||||||
bool res = process.waitForFinished();
|
bool res = process.waitForFinished();
|
||||||
std::thread thread([&] {
|
std::thread thread([&] {
|
||||||
notifyUninstallDone(item, res);
|
notifyUninstallDone(item, res);
|
||||||
@ -1079,7 +1083,8 @@ void Launcher::uninstallFlatpak(DesktopInfo &info, const Item &item)
|
|||||||
bool Launcher::uninstallWineApp(const Item &item)
|
bool Launcher::uninstallWineApp(const Item &item)
|
||||||
{
|
{
|
||||||
QProcess process;
|
QProcess process;
|
||||||
process.start("/opt/deepinwine/tools/uninstall.sh" + item.info.path);
|
QStringList args {item.info.path};
|
||||||
|
process.start("/opt/deepinwine/tools/uninstall.sh", args);
|
||||||
bool res = process.waitForFinished();
|
bool res = process.waitForFinished();
|
||||||
std::thread thread([&] {
|
std::thread thread([&] {
|
||||||
notifyUninstallDone(item, res);
|
notifyUninstallDone(item, res);
|
||||||
|
Loading…
Reference in New Issue
Block a user