Your message dated Thu, 06 Apr 2017 07:41:00 +0000
with message-id <5f3c5284-503f-29eb-60f0-6ec6610f0...@thykier.net>
and subject line Re: Bug#858780: unblock: lgogdownloader/3.1-2 (pre-upload 
request)
has caused the Debian Bug report #858780,
regarding unblock: lgogdownloader/3.1-1 (pre-upload request)
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
858780: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=858780
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock

Hi,

This is a pre-upload unblock request for lgogdownloader. The version
currently in Stretch (and unstable) has a nasty bug (#857691) which
can make the whole package unusable in certain circumstances —
basically, lgogdownloader crashes with user accounts containing
downloadable content for games that the account doesn't own (which can
happen unfortunately).

Upstream have released a fix for this, and Simon McVittie has pushed
it to the package VCS. The resulting diff, were I to upload the
package to unstable, would be

diff --git a/debian/changelog b/debian/changelog
index bfbc456..9b5a3c4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+lgogdownloader (3.1-2) unstable; urgency=medium
+
+  [ Simon McVittie ]
+  * Team upload
+  * Backport patch from 3.2 fixing the ability to list games if a game
+    has {'updates': null} (Closes: #857691)
+
+ -- Stephen Kitt <sk...@debian.org>  Sun, 26 Mar 2017 18:58:18 +0200
+
 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 <lgogdownloa...@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


Is this OK?

unblock lgogdownloader/3.1-1

Regards,

Stephen


-- System Information:
Debian Release: 9.0
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'testing'), (500, 'stable'), (200, 
'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.9.0-1-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

--- End Message ---
--- Begin Message ---
Stephen Kitt:
> Control: tag -1 - moreinfo
> 
> On Wed, 05 Apr 2017 06:38:00 +0000, Niels Thykier <ni...@thykier.net> wrote:
>> Stephen Kitt:
>>> unblock lgogdownloader/3.1-2
>>> [...]  
>> Ack, please go ahead.
> 
> Uploaded, thanks! (And I fixed the version in the unblock above.)
> 
> Regards,
> 
> Stephen
> 

Unblocked, thanks.

~Niels

--- End Message ---

Reply via email to