Hello community, here is the log from the commit of package yast2-packager for openSUSE:Factory checked in at 2020-07-30 09:59:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/yast2-packager (Old) and /work/SRC/openSUSE:Factory/.yast2-packager.new.3592 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-packager" Thu Jul 30 09:59:42 2020 rev:399 rq:823073 version:4.3.5 Changes: -------- --- /work/SRC/openSUSE:Factory/yast2-packager/yast2-packager.changes 2020-07-21 15:48:13.628135199 +0200 +++ /work/SRC/openSUSE:Factory/.yast2-packager.new.3592/yast2-packager.changes 2020-07-30 10:00:06.175221303 +0200 @@ -1,0 +2,6 @@ +Mon Jul 27 21:10:29 UTC 2020 - Josef Reidinger <[email protected]> + +- Handle exceptions when parsing xml file (related to bsc#1170886) +- 4.3.5 + +------------------------------------------------------------------- Old: ---- yast2-packager-4.3.4.tar.bz2 New: ---- yast2-packager-4.3.5.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ yast2-packager.spec ++++++ --- /var/tmp/diff_new_pack.bOityW/_old 2020-07-30 10:00:07.215221923 +0200 +++ /var/tmp/diff_new_pack.bOityW/_new 2020-07-30 10:00:07.223221928 +0200 @@ -17,7 +17,7 @@ Name: yast2-packager -Version: 4.3.4 +Version: 4.3.5 Release: 0 Summary: YaST2 - Package Library License: GPL-2.0-or-later ++++++ yast2-packager-4.3.4.tar.bz2 -> yast2-packager-4.3.5.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-4.3.4/package/yast2-packager.changes new/yast2-packager-4.3.5/package/yast2-packager.changes --- old/yast2-packager-4.3.4/package/yast2-packager.changes 2020-07-15 16:06:57.000000000 +0200 +++ new/yast2-packager-4.3.5/package/yast2-packager.changes 2020-07-28 09:20:21.000000000 +0200 @@ -1,4 +1,10 @@ ------------------------------------------------------------------- +Mon Jul 27 21:10:29 UTC 2020 - Josef Reidinger <[email protected]> + +- Handle exceptions when parsing xml file (related to bsc#1170886) +- 4.3.5 + +------------------------------------------------------------------- Tue Jul 14 10:41:22 CEST 2020 - [email protected] - Handle variable expansion in repository name (bsc#1172477) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-4.3.4/package/yast2-packager.spec new/yast2-packager-4.3.5/package/yast2-packager.spec --- old/yast2-packager-4.3.4/package/yast2-packager.spec 2020-07-15 16:06:57.000000000 +0200 +++ new/yast2-packager-4.3.5/package/yast2-packager.spec 2020-07-28 09:20:21.000000000 +0200 @@ -17,7 +17,7 @@ Name: yast2-packager -Version: 4.3.4 +Version: 4.3.5 Release: 0 Summary: YaST2 - Package Library License: GPL-2.0-or-later diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-4.3.4/src/lib/y2packager/clients/inst_productsources.rb new/yast2-packager-4.3.5/src/lib/y2packager/clients/inst_productsources.rb --- old/yast2-packager-4.3.4/src/lib/y2packager/clients/inst_productsources.rb 2020-07-15 16:06:57.000000000 +0200 +++ new/yast2-packager-4.3.5/src/lib/y2packager/clients/inst_productsources.rb 2020-07-28 09:20:21.000000000 +0200 @@ -502,10 +502,10 @@ return false end - xml_file_content = XML.XMLToYCPFile(download_file) - - if xml_file_content.nil? - Builtins.y2error("Reading file %1 failed", download_file) + begin + xml_file_content = XML.XMLToYCPFile(download_file) + rescue XMLDeserializationError => e + log.error "Reading file #{download_file} failed: #{e.inspect}" return false end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-4.3.4/src/modules/AddOnProduct.rb new/yast2-packager-4.3.5/src/modules/AddOnProduct.rb --- old/yast2-packager-4.3.4/src/modules/AddOnProduct.rb 2020-07-15 16:06:57.000000000 +0200 +++ new/yast2-packager-4.3.5/src/modules/AddOnProduct.rb 2020-07-28 09:20:21.000000000 +0200 @@ -1191,14 +1191,16 @@ return [] end - xmlfile_products = XML.XMLToYCPFile(parse_file) - - if xmlfile_products.nil? + begin + xmlfile_products = XML.XMLToYCPFile(parse_file) + rescue XMLDeserializationError => e # TRANSLATORS: error report Report.Error(_("Unable to use additional products.")) - Builtins.y2error("Erroneous file %1", parse_file) + log.error "Erroneous file #{parse_file}: #{e.inspect}" return [] - elsif Ops.get_list(xmlfile_products, "product_items", []) == [] + end + + if Ops.get_list(xmlfile_products, "product_items", []) == [] Builtins.y2warning("Empty file %1", parse_file) return [] end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/yast2-packager-4.3.4/test/addon_product_test.rb new/yast2-packager-4.3.5/test/addon_product_test.rb --- old/yast2-packager-4.3.4/test/addon_product_test.rb 2020-07-15 16:06:57.000000000 +0200 +++ new/yast2-packager-4.3.5/test/addon_product_test.rb 2020-07-28 09:20:21.000000000 +0200 @@ -770,4 +770,24 @@ end end end + + describe "#ParseXMLBasedAddOnProductsFile" do + context "Passed xml is not valid" do + before do + allow(Yast::FileUtils).to receive(:Exists).and_return(true) + + allow(Yast::XML).to receive(:XMLToYCPFile).and_raise(Yast::XMLDeserializationError) + end + + it "return empty array" do + expect(subject.ParseXMLBasedAddOnProductsFile("test", "test")).to eq [] + end + + it "shows error report" do + expect(Yast::Report).to receive(:Error) + + subject.ParseXMLBasedAddOnProductsFile("test", "test") + end + end + end end
