From 3df8a2af3b9e15f490acd66f07498a602b833633 Mon Sep 17 00:00:00 2001 From: Tomasz Iwanek Date: Mon, 24 Jun 2013 09:59:10 +0200 Subject: [PATCH] Check for conifg.xml existence in pre-installation [Issue#] LINUXWRT-478 [Bug] Crash of wrt-installer with wrong error code [Cause] N/A [Solution] Check if config.xml file actually exist before parsing [Verification] Run: wrt-extra-tests-w3c --output=text --regexp='_dq' wrt-extra-tests-w3c --output=text --regexp='_dw' wrt-extra-tests-w3c --output=text --regexp='_bg' wrt-extra-tests-w3c --output=text --regexp='_bh' Change-Id: I70cec6d1a4af2cc2f0dff7beaf34e3233c76ffbf --- src/jobs/widget_install/job_widget_install.cpp | 10 ++++++++++ src/jobs/widget_install/widget_install_errors.h | 1 + 2 files changed, 11 insertions(+) diff --git a/src/jobs/widget_install/job_widget_install.cpp b/src/jobs/widget_install/job_widget_install.cpp index 9757223..4bbfe02 100644 --- a/src/jobs/widget_install/job_widget_install.cpp +++ b/src/jobs/widget_install/job_widget_install.cpp @@ -320,6 +320,11 @@ ConfigureResult JobWidgetInstall::prepareInstallation( LogError("Failed to unzip for widget"); result = ConfigureResult::Failed_DrmError; } + Catch(Exceptions::MissingConfig) + { + LogError("Failed to localize config.xml"); + result = ConfigureResult::Failed_InvalidConfig; + } return result; } @@ -656,6 +661,11 @@ ConfigParserData JobWidgetInstall::getWidgetDataFromXML( } } + if(!DPL::Utils::Path(configFile).Exists()) + { + ThrowMsg(Exceptions::MissingConfig, "Config file not exists"); + } + parser.Parse(configFile, ElementParserPtr( new RootParser(configInfo, diff --git a/src/jobs/widget_install/widget_install_errors.h b/src/jobs/widget_install/widget_install_errors.h index a76637f..89be530 100644 --- a/src/jobs/widget_install/widget_install_errors.h +++ b/src/jobs/widget_install/widget_install_errors.h @@ -43,6 +43,7 @@ DECLARE_JOB_EXCEPTION(Base, ExtractFileFailed, ErrorPackageInvalid) DECLARE_JOB_EXCEPTION(Base, EmptyPluginsDirectory, ErrorPackageInvalid) DECLARE_JOB_EXCEPTION(Base, PluginsSubdirectory, ErrorPackageInvalid) DECLARE_JOB_EXCEPTION(Base, RDSDeltaFailure, ErrorPackageInvalid) +DECLARE_JOB_EXCEPTION(Base, MissingConfig, ErrorPackageInvalid) DECLARE_JOB_EXCEPTION(Base, PackageLowerVersion, ErrorPackageLowerVersion) -- 2.7.4