[lgogdownloader] 01/01: Backport patch from 3.2 fixing the ability to list games if a game has {'updates': null}

Simon McVittie smcv at debian.org
Tue Mar 14 00:25:52 UTC 2017


This is an automated email from the git hooks/post-receive script.

smcv pushed a commit to branch master
in repository lgogdownloader.

commit d8661bf35e28b5495630d31813c79d0c741a3242
Author: Simon McVittie <smcv at debian.org>
Date:   Mon Mar 13 22:29:11 2017 +0000

    Backport patch from 3.2 fixing the ability to list games if a game has {'updates': null}
---
 debian/changelog                                   |  8 ++++
 debian/patches/Fix-crash-in-Website-getGames.patch | 49 ++++++++++++++++++++++
 debian/patches/series                              |  1 +
 3 files changed, 58 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index bfbc456..ed2bff6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+lgogdownloader (3.1-2) UNRELEASED; urgency=medium
+
+  * Team upload
+  * Backport patch from 3.2 fixing the ability to list games if a game
+    has {'updates': null} (Closes: #857691)
+
+ -- Simon McVittie <smcv at debian.org>  Mon, 13 Mar 2017 22:27:46 +0000
+
 lgogdownloader (3.1-1) unstable; urgency=medium
 
   * New upstream release.
diff --git a/debian/patches/Fix-crash-in-Website-getGames.patch b/debian/patches/Fix-crash-in-Website-getGames.patch
new file mode 100644
index 0000000..a689162
--- /dev/null
+++ b/debian/patches/Fix-crash-in-Website-getGames.patch
@@ -0,0 +1,49 @@
+From: Sude <lgogdownloader at gmail.com>
+Date: Fri, 20 Jan 2017 00:15:50 +0200
+Subject: Fix crash in Website::getGames
+
+JSON value for updates can be null in some cases. For example when user owns a dlc but not the base game.
+This caused a crash due to std::stoi throwing std::invalid_argument exception
+
+Origin: upstream, 3.2, commit:22f47de4fcd8cd7ecc2a89fbb25f94efb1b3f743
+---
+ src/website.cpp | 26 +++++++++++++++++++++++++-
+ 1 file changed, 25 insertions(+), 1 deletion(-)
+
+diff --git a/src/website.cpp b/src/website.cpp
+index 0803432..8ca4c8c 100644
+--- a/src/website.cpp
++++ b/src/website.cpp
+@@ -163,7 +163,31 @@ std::vector<gameItem> Website::getGames()
+                 gameItem game;
+                 game.name = product["slug"].asString();
+                 game.id = product["id"].isInt() ? std::to_string(product["id"].asInt()) : product["id"].asString();
+-                game.updates = product["updates"].isInt() ? product["updates"].asInt() : std::stoi(product["updates"].asString());
++
++                if (product.isMember("updates"))
++                {
++                    if (product["updates"].isNull())
++                    {
++                        /* In some cases the value can be null.
++                         * For example when user owns a dlc but not the base game
++                         * https://github.com/Sude-/lgogdownloader/issues/101
++                         * Assume that there are no updates in this case */
++                        game.updates = 0;
++                    }
++                    else if (product["updates"].isInt())
++                        game.updates = product["updates"].asInt();
++                    else
++                    {
++                        try
++                        {
++                            game.updates = std::stoi(product["updates"].asString());
++                        }
++                        catch (std::invalid_argument& e)
++                        {
++                            game.updates = 0; // Assume no updates
++                        }
++                    }
++                }
+ 
+                 unsigned int platform = 0;
+                 if (product["worksOn"]["Windows"].asBool())
diff --git a/debian/patches/series b/debian/patches/series
index 48af9e8..69eb314 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
+Fix-crash-in-Website-getGames.patch
 manpage-whatis.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/lgogdownloader.git



More information about the Pkg-games-commits mailing list