[packagekit] [PATCH] aptcc: Don't crash if spawning gdebi fails
Daniel Nicoletti
dantti12 at gmail.com
Mon Aug 5 07:14:07 PDT 2013
Patch seems fine, thanks,
do you have commit access or prefer that I commit it?
2013/8/5 Colin Watson <cjwatson at ubuntu.com>:
> If the aptcc backend fails to spawn gdebi (as can happen if a plugin
> declares that it can handle PK_ROLE_ENUM_INSTALL_FILES but then can't
> handle all the provided files, or perhaps because of hitting a resource
> limit or similar), dereferencing std_out and std_err is invalid and will
> probably crash.
>
> ---
> backends/aptcc/apt-intf.cpp | 14 +++++++++++---
> 1 file changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/backends/aptcc/apt-intf.cpp b/backends/aptcc/apt-intf.cpp
> index 78a8f35..cb5182a 100644
> --- a/backends/aptcc/apt-intf.cpp
> +++ b/backends/aptcc/apt-intf.cpp
> @@ -2080,11 +2080,19 @@ bool AptIntf::markFileForInstall(const gchar *file, PkgList &install, PkgList &r
> &gerror);
> int exit_code = WEXITSTATUS(status);
> // cout << "DebStatus " << exit_code << " WEXITSTATUS " << WEXITSTATUS(status) << " ret: "<< ret << endl;
> - cout << "std_out " << strlen(std_out) << std_out << endl;
> - cout << "std_err " << strlen(std_err) << std_err << endl;
> + if (ret) {
> + cout << "std_out " << strlen(std_out) << std_out << endl;
> + cout << "std_err " << strlen(std_err) << std_err << endl;
> + }
>
> PkgList pkgs;
> - if (exit_code == 1) {
> + if (!ret) {
> + pk_backend_job_error_code(m_job, PK_ERROR_ENUM_TRANSACTION_ERROR,
> + "Spawn of helper '%s' failed: %s",
> + argv[0], gerror->message);
> + g_error_free(gerror);
> + return false;
> + } else if (exit_code == 1) {
> if (strlen(std_out) == 0) {
> pk_backend_job_error_code(m_job, PK_ERROR_ENUM_TRANSACTION_ERROR, "Error: %s", std_err);
> } else {
> --
> 1.8.3.2
>
> Thanks,
>
> --
> Colin Watson [cjwatson at ubuntu.com]
> _______________________________________________
> PackageKit mailing list
> PackageKit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/packagekit
--
Daniel Nicoletti
KDE Developer - http://dantti.wordpress.com
More information about the PackageKit
mailing list