[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#860593: marked as done (unblock: reportbug/7.1.6)



Your message dated Wed, 19 Apr 2017 09:12:00 +0000
with message-id <669905f1-32d4-479a-28de-9d1000481404@thykier.net>
and subject line Re: Bug#860593: unblock: reportbug/7.1.6
has caused the Debian Bug report #860593,
regarding unblock: reportbug/7.1.6
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 owner@bugs.debian.org
immediately.)


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

Please unblock package reportbug

This upload fixes 2 crashes (one of which pinged by a RT member)

unblock reportbug/7.1.6

-- System Information:
Debian Release: stretch/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64
 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.2.0-1-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
diff -Nru reportbug-7.1.5/debian/changelog reportbug-7.1.6/debian/changelog
--- reportbug-7.1.5/debian/changelog	2017-02-12 12:07:18.000000000 -0500
+++ reportbug-7.1.6/debian/changelog	2017-04-18 21:12:02.000000000 -0400
@@ -1,3 +1,15 @@
+reportbug (7.1.6) unstable; urgency=medium
+
+  * reportbug/utils.py
+    - wrap every command execution in a helper function to (eventually) decode
+      the command output, this will prevent non-UTF-8 output to crash reportbug;
+      patch by Nis Martensen; Closes: #857794
+  * reportbug/submit.py
+    - handle text attachments in different encodings, currently making reportbug
+      crash; patch by Nis Martensen; Follow up for #848729
+
+ -- Sandro Tosi <morph@debian.org>  Tue, 18 Apr 2017 21:12:02 -0400
+
 reportbug (7.1.5) unstable; urgency=medium
 
   * reportbug/utils.py
diff -Nru reportbug-7.1.5/reportbug/__init__.py reportbug-7.1.6/reportbug/__init__.py
--- reportbug-7.1.5/reportbug/__init__.py	2017-02-12 12:07:18.000000000 -0500
+++ reportbug-7.1.6/reportbug/__init__.py	2017-04-18 21:12:02.000000000 -0400
@@ -25,7 +25,7 @@
 __all__ = ['bugreport', 'utils', 'urlutils', 'checkbuildd', 'checkversions',
            'debbugs', 'exceptions', 'submit', 'tempfile']
 
-VERSION_NUMBER = "7.1.5"
+VERSION_NUMBER = "7.1.6"
 
 VERSION = "reportbug " + VERSION_NUMBER
 COPYRIGHT = VERSION + '\nCopyright (C) 1999-2008 Chris Lawrence <lawrencc@debian.org>' + \
Binary files /tmp/1bRAXcxzCa/reportbug-7.1.5/reportbug/__pycache__/__init__.cpython-35.pyc and /tmp/snN27qW4Zs/reportbug-7.1.6/reportbug/__pycache__/__init__.cpython-35.pyc differ
Binary files /tmp/1bRAXcxzCa/reportbug-7.1.5/reportbug/__pycache__/utils.cpython-35.pyc and /tmp/snN27qW4Zs/reportbug-7.1.6/reportbug/__pycache__/utils.cpython-35.pyc differ
diff -Nru reportbug-7.1.5/reportbug/submit.py reportbug-7.1.6/reportbug/submit.py
--- reportbug-7.1.5/reportbug/submit.py	2017-02-12 12:07:18.000000000 -0500
+++ reportbug-7.1.6/reportbug/submit.py	2017-04-18 21:12:02.000000000 -0400
@@ -153,9 +153,15 @@
 
         maintype, subtype = ctype.split('/', 1)
         if maintype == 'text':
-            fp = open(attachment, 'rU')
-            part = MIMEText(fp.read())
-            fp.close()
+            try:
+                with open(attachment, 'rU') as fp:
+                    part = MIMEText(fp.read())
+            except UnicodeDecodeError:
+                fp = open(attachment, 'rb')
+                part = MIMEBase(maintype, subtype)
+                part.set_payload(fp.read())
+                fp.close()
+                email.encoders.encode_base64(part)
         elif maintype == 'message':
             fp = open(attachment, 'rb')
             part = MIMEMessage(email.message_from_file(fp),
diff -Nru reportbug-7.1.5/reportbug/utils.py reportbug-7.1.6/reportbug/utils.py
--- reportbug-7.1.5/reportbug/utils.py	2017-02-12 12:07:18.000000000 -0500
+++ reportbug-7.1.6/reportbug/utils.py	2017-04-18 21:12:02.000000000 -0400
@@ -180,6 +180,13 @@
     return (pipe, use_dlocate)
 
 
+def get_command_output(cmd):
+    use_shell = False
+    if isinstance(cmd, str) and ' ' in cmd:
+        use_shell = True
+    return subprocess.run(cmd, shell=use_shell, stdout=subprocess.PIPE).stdout.decode(errors='backslashreplace')
+
+
 def query_dpkg_for(filename, use_dlocate=True):
     try:
         x = os.getcwd()
@@ -353,10 +360,10 @@
 
     packarg = pipes.quote(package)
     if avail:
-        output = subprocess.getoutput(
+        output = get_command_output(
             "COLUMNS=79 dpkg --print-avail %s 2>/dev/null" % packarg)
     else:
-        output = subprocess.getoutput(
+        output = get_command_output(
             "COLUMNS=79 dpkg --status %s 2>/dev/null" % packarg)
 
     for line in output.split(os.linesep):
@@ -511,7 +518,7 @@
 
 
 def available_package_description(package):
-    data = subprocess.getoutput('apt-cache show ' + pipes.quote(package))
+    data = get_command_output('apt-cache show ' + pipes.quote(package))
     descre = re.compile('^Description(?:-.*)?: (.*)$')
     for line in data.split('\n'):
         m = descre.match(line)
@@ -523,7 +530,7 @@
 def get_source_name(package):
     packages = []
 
-    data = subprocess.getoutput('apt-cache showsrc ' + pipes.quote(package))
+    data = get_command_output('apt-cache showsrc ' + pipes.quote(package))
     packre = re.compile(r'^Package: (.*)$')
     for line in data.split('\n'):
         m = packre.match(line)
@@ -537,7 +544,7 @@
     retlist = []
     found = {}
 
-    data = subprocess.getoutput('apt-cache showsrc ' + pipes.quote(package))
+    data = get_command_output('apt-cache showsrc ' + pipes.quote(package))
     binre = re.compile(r'^Binary: (.*)$')
     for line in data.split('\n'):
         m = binre.match(line)
@@ -704,7 +711,7 @@
             confinfo[filename] = msg
             continue
 
-        filemd5 = subprocess.getoutput('md5sum ' + pipes.quote(filename)).split()[0]
+        filemd5 = get_command_output('md5sum ' + pipes.quote(filename)).split()[0]
         if filemd5 == md5sum:
             continue
 
@@ -732,7 +739,7 @@
 def get_debian_release_info():
     debvers = debinfo = verfile = warn = ''
     dists = []
-    output = subprocess.getoutput('apt-cache policy 2>/dev/null')
+    output = get_command_output('apt-cache policy 2>/dev/null')
     if output:
         mre = re.compile('\s+(\d+)\s+.*$\s+release\s.*o=(Ubuntu|Debian|Debian Ports),a=([^,]+),', re.MULTILINE)
         found = {}
@@ -776,11 +783,11 @@
 
 
 def lsb_release_info():
-    return subprocess.getoutput('lsb_release -a 2>/dev/null') + '\n'
+    return get_command_output('lsb_release -a 2>/dev/null') + '\n'
 
 
 def get_arch():
-    arch = subprocess.getoutput('COLUMNS=79 dpkg --print-architecture 2>/dev/null')
+    arch = get_command_output('COLUMNS=79 dpkg --print-architecture 2>/dev/null')
     if not arch:
         un = os.uname()
         arch = un[4]
@@ -791,7 +798,7 @@
 
 
 def get_multiarch():
-    out = subprocess.getoutput('COLUMNS=79 dpkg --print-foreign-architectures 2>/dev/null')
+    out = get_command_output('COLUMNS=79 dpkg --print-foreign-architectures 2>/dev/null')
     return ', '.join(out.splitlines())
 
 
Binary files /tmp/1bRAXcxzCa/reportbug-7.1.5/test/__pycache__/__init__.cpython-35.pyc and /tmp/snN27qW4Zs/reportbug-7.1.6/test/__pycache__/__init__.cpython-35.pyc differ
Binary files /tmp/1bRAXcxzCa/reportbug-7.1.5/test/__pycache__/test_bugreport.cpython-35.pyc and /tmp/snN27qW4Zs/reportbug-7.1.6/test/__pycache__/test_bugreport.cpython-35.pyc differ
Binary files /tmp/1bRAXcxzCa/reportbug-7.1.5/test/__pycache__/test_checkbuildd.cpython-35.pyc and /tmp/snN27qW4Zs/reportbug-7.1.6/test/__pycache__/test_checkbuildd.cpython-35.pyc differ
Binary files /tmp/1bRAXcxzCa/reportbug-7.1.5/test/__pycache__/test_checkversions.cpython-35.pyc and /tmp/snN27qW4Zs/reportbug-7.1.6/test/__pycache__/test_checkversions.cpython-35.pyc differ
Binary files /tmp/1bRAXcxzCa/reportbug-7.1.5/test/__pycache__/test_debbugs.cpython-35.pyc and /tmp/snN27qW4Zs/reportbug-7.1.6/test/__pycache__/test_debbugs.cpython-35.pyc differ
Binary files /tmp/1bRAXcxzCa/reportbug-7.1.5/test/__pycache__/test_exception.cpython-35.pyc and /tmp/snN27qW4Zs/reportbug-7.1.6/test/__pycache__/test_exception.cpython-35.pyc differ
Binary files /tmp/1bRAXcxzCa/reportbug-7.1.5/test/__pycache__/test_hiermatch.cpython-35.pyc and /tmp/snN27qW4Zs/reportbug-7.1.6/test/__pycache__/test_hiermatch.cpython-35.pyc differ
Binary files /tmp/1bRAXcxzCa/reportbug-7.1.5/test/__pycache__/test_tempfiles.cpython-35.pyc and /tmp/snN27qW4Zs/reportbug-7.1.6/test/__pycache__/test_tempfiles.cpython-35.pyc differ
Binary files /tmp/1bRAXcxzCa/reportbug-7.1.5/test/__pycache__/test_ui.cpython-35.pyc and /tmp/snN27qW4Zs/reportbug-7.1.6/test/__pycache__/test_ui.cpython-35.pyc differ
Binary files /tmp/1bRAXcxzCa/reportbug-7.1.5/test/__pycache__/test_ui_gtk2.cpython-35.pyc and /tmp/snN27qW4Zs/reportbug-7.1.6/test/__pycache__/test_ui_gtk2.cpython-35.pyc differ
Binary files /tmp/1bRAXcxzCa/reportbug-7.1.5/test/__pycache__/test_urlutils.cpython-35.pyc and /tmp/snN27qW4Zs/reportbug-7.1.6/test/__pycache__/test_urlutils.cpython-35.pyc differ
Binary files /tmp/1bRAXcxzCa/reportbug-7.1.5/test/__pycache__/test_utils.cpython-35.pyc and /tmp/snN27qW4Zs/reportbug-7.1.6/test/__pycache__/test_utils.cpython-35.pyc differ

--- End Message ---
--- Begin Message ---
Sandro Tosi:
> Package: release.debian.org
> Severity: normal
> User: release.debian.org@packages.debian.org
> Usertags: unblock
> 
> Please unblock package reportbug
> 
> This upload fixes 2 crashes (one of which pinged by a RT member)
> 
> unblock reportbug/7.1.6
> 
> [...]

Unblocked, thanks. :)

~Niels

--- End Message ---

Reply to: