diff -up rpmlint-rpmlint-1.10/AbstractCheck.py.flake rpmlint-rpmlint-1.10/AbstractCheck.py
--- rpmlint-rpmlint-1.10/AbstractCheck.py.flake	2017-09-05 02:40:05.000000000 -0400
+++ rpmlint-rpmlint-1.10/AbstractCheck.py	2018-04-17 12:22:20.681609697 -0400
@@ -11,7 +11,7 @@ import contextlib
 import re
 try:
     import urllib2
-except:
+except ImportError:
     import urllib.request as urllib2
 
 import Config
diff -up rpmlint-rpmlint-1.10/BinariesCheck.py.flake rpmlint-rpmlint-1.10/BinariesCheck.py
--- rpmlint-rpmlint-1.10/BinariesCheck.py.flake	2017-09-05 02:40:05.000000000 -0400
+++ rpmlint-rpmlint-1.10/BinariesCheck.py	2018-04-17 12:22:52.688880629 -0400
@@ -101,32 +101,32 @@ class BinaryInfo(object):
             ('readelf', '-W', '-S', '-l', '-d', '-s', path))
         if not res[0]:
             lines = res[1].splitlines()
-            for l in lines:
-                r = BinaryInfo.needed_regex.search(l)
+            for line in lines:
+                r = BinaryInfo.needed_regex.search(line)
                 if r:
                     self.needed.append(r.group(1))
                     continue
 
-                r = BinaryInfo.rpath_regex.search(l)
+                r = BinaryInfo.rpath_regex.search(line)
                 if r:
                     for p in r.group(1).split(':'):
                         self.rpath.append(p)
                     continue
 
-                if BinaryInfo.comment_regex.search(l):
+                if BinaryInfo.comment_regex.search(line):
                     self.comment = True
                     continue
 
-                if BinaryInfo.pic_regex.search(l):
+                if BinaryInfo.pic_regex.search(line):
                     self.non_pic = False
                     continue
 
-                r = BinaryInfo.soname_regex.search(l)
+                r = BinaryInfo.soname_regex.search(line)
                 if r:
                     self.soname = r.group(1)
                     continue
 
-                r = BinaryInfo.stack_regex.search(l)
+                r = BinaryInfo.stack_regex.search(line)
                 if r:
                     self.stack = True
                     flags = r.group(1)
@@ -134,45 +134,45 @@ class BinaryInfo(object):
                         self.exec_stack = True
                     continue
 
-                if l.startswith("Symbol table"):
+                if line.startswith("Symbol table"):
                     break
 
-            for l in lines:
-                r = BinaryInfo.call_regex.search(l)
+            for line in lines:
+                r = BinaryInfo.call_regex.search(line)
                 if not r:
                     continue
-                l = r.group(1)
+                line = r.group(1)
 
-                if BinaryInfo.mktemp_call_regex.search(l):
+                if BinaryInfo.mktemp_call_regex.search(line):
                     self.mktemp = True
 
-                if BinaryInfo.setgid_call_regex.search(l):
+                if BinaryInfo.setgid_call_regex.search(line):
                     self.setgid = True
 
-                if BinaryInfo.setuid_call_regex.search(l):
+                if BinaryInfo.setuid_call_regex.search(line):
                     self.setuid = True
 
-                if BinaryInfo.setgroups_call_regex.search(l):
+                if BinaryInfo.setgroups_call_regex.search(line):
                     self.setgroups = True
 
-                if BinaryInfo.chdir_call_regex.search(l):
+                if BinaryInfo.chdir_call_regex.search(line):
                     self.chdir = True
 
-                if BinaryInfo.chroot_call_regex.search(l):
+                if BinaryInfo.chroot_call_regex.search(line):
                     self.chroot = True
 
                 if BinaryInfo.forbidden_functions:
                     for r_name, func in BinaryInfo.forbidden_functions.items():
-                        ret = func['f_regex'].search(l)
+                        ret = func['f_regex'].search(line)
                         if ret:
                             self.forbidden_calls.append(r_name)
 
                 if is_shlib:
-                    r = BinaryInfo.exit_call_regex.search(l)
+                    r = BinaryInfo.exit_call_regex.search(line)
                     if r:
                         self.exit_calls.append(r.group(1))
                         continue
-                    r = BinaryInfo.fork_call_regex.search(l)
+                    r = BinaryInfo.fork_call_regex.search(line)
                     if r:
                         fork_called = True
                         continue
@@ -182,14 +182,14 @@ class BinaryInfo(object):
             if self.forbidden_calls:
                 res = Pkg.getstatusoutput(('strings', path))
                 if not res[0]:
-                    for l in res[1].splitlines():
+                    for line in res[1].splitlines():
                         # as we need to remove elements, iterate backwards
                         for i in range(len(self.forbidden_calls) - 1, -1, -1):
                             func = self.forbidden_calls[i]
                             f = BinaryInfo.forbidden_functions[func]
                             if 'waiver_regex' not in f:
                                 continue
-                            r = f['waiver_regex'].search(l)
+                            r = f['waiver_regex'].search(line)
                             if r:
                                 del self.forbidden_calls[i]
 
@@ -254,8 +254,8 @@ class BinaryInfo(object):
             # We could do this with objdump, but it's _much_ simpler with ldd.
             res = Pkg.getstatusoutput(('ldd', '-d', '-r', path))
             if not res[0]:
-                for l in res[1].splitlines():
-                    undef = BinaryInfo.undef_regex.search(l)
+                for line in res[1].splitlines():
+                    undef = BinaryInfo.undef_regex.search(line)
                     if undef:
                         self.undef.append(undef.group(1))
                 if self.undef:
@@ -263,7 +263,7 @@ class BinaryInfo(object):
                         res = Pkg.getstatusoutput(['c++filt'] + self.undef)
                         if not res[0]:
                             self.undef = res[1].splitlines()
-                    except:
+                    except OSError:
                         pass
             else:
                 printWarning(pkg, 'ldd-failed', file)
@@ -272,13 +272,13 @@ class BinaryInfo(object):
                 # Either ldd doesn't grok -u (added in glibc 2.3.4) or we have
                 # unused direct dependencies
                 in_unused = False
-                for l in res[1].splitlines():
-                    if not l.rstrip():
+                for line in res[1].splitlines():
+                    if not line.rstrip():
                         pass
-                    elif l.startswith('Unused direct dependencies'):
+                    elif line.startswith('Unused direct dependencies'):
                         in_unused = True
                     elif in_unused:
-                        unused = BinaryInfo.unused_regex.search(l)
+                        unused = BinaryInfo.unused_regex.search(line)
                         if unused:
                             self.unused.append(unused.group(1))
                         else:
diff -up rpmlint-rpmlint-1.10/Config.py.flake rpmlint-rpmlint-1.10/Config.py
--- rpmlint-rpmlint-1.10/Config.py.flake	2017-09-05 02:40:05.000000000 -0400
+++ rpmlint-rpmlint-1.10/Config.py	2018-04-17 12:22:20.684609629 -0400
@@ -42,11 +41,11 @@ USEUTF8_DEFAULT = False
 try:
     if locale.getpreferredencoding() == 'UTF-8':
         USEUTF8_DEFAULT = True
-except:
+except UnicodeError:
     try:
         if re.match('utf', locale.getdefaultlocale()[1], re.I):
             USEUTF8_DEFAULT = True
-    except:
+    except UnicodeError:
         pass
 
 info = False
@@ -105,10 +105,7 @@ def setOption(name, value):
 
 
 def getOption(name, default=""):
-    try:
-        return _options[name]
-    except:
-        return default
+    return _options.get(name, default)
 
 
 # List of filters
@@ -128,7 +125,7 @@ def removeFilter(s):
 
     try:
         _filters.remove(s)
-    except:
+    except ValueError:
         pass
     else:
         _filters_re = None
diff -up rpmlint-rpmlint-1.10/MenuXDGCheck.py.flake rpmlint-rpmlint-1.10/MenuXDGCheck.py
--- rpmlint-rpmlint-1.10/MenuXDGCheck.py.flake	2017-09-05 02:40:05.000000000 -0400
+++ rpmlint-rpmlint-1.10/MenuXDGCheck.py	2018-04-17 12:22:20.681609697 -0400
@@ -9,7 +9,7 @@
 import os
 try:
     from ConfigParser import RawConfigParser
-except:
+except ImportError:
     from configparser import RawConfigParser
 
 import AbstractCheck
diff -up rpmlint-rpmlint-1.10/Pkg.py.flake rpmlint-rpmlint-1.10/Pkg.py
--- rpmlint-rpmlint-1.10/Pkg.py.flake	2017-09-05 02:40:05.000000000 -0400
+++ rpmlint-rpmlint-1.10/Pkg.py	2018-04-17 12:22:20.681609697 -0400
@@ -18,7 +18,7 @@ import sys
 import tempfile
 try:
     from urlparse import urljoin
-except:
+except ImportError:
     from urllib.parse import urljoin
 
 try:
@@ -27,7 +27,7 @@ try:
     _magic = magic.open(magic.MAGIC_NONE)
     _ = _magic.descriptor  # magic >= 5.05 needed
     _magic.load()
-except:
+except ImportError:
     _magic = None
 import rpm
 
@@ -52,7 +52,7 @@ else:
 
 try:
     from shlex import quote as shquote
-except:
+except ImportError:
     def shquote(s):
         return '"%s"' % s
 
@@ -166,7 +166,7 @@ def is_utf8(fname):
 def is_utf8_bytestr(s):
     try:
         s.decode('UTF-8')
-    except:
+    except UnicodeError:
         return False
     return True
 
@@ -227,7 +227,7 @@ def get_default_valid_rpmgroups(filename
                 groupsfiles = [x for x in p.files() if x.endswith('/GROUPS')]
                 if groupsfiles:
                     filename = groupsfiles[0]
-        except:  # the rpm package might not be installed
+        except KeyError:  # the rpm package might not be installed
             pass
     if filename and os.path.exists(filename):
         with open(filename) as fobj:
@@ -532,7 +532,7 @@ class Pkg(AbstractPkg):
     def __getitem__(self, key):
         try:
             val = self.header[key]
-        except:
+        except KeyError:
             val = []
         if val == []:
             return None
@@ -680,7 +680,7 @@ class Pkg(AbstractPkg):
         magics = [b2s(x) for x in self.header[rpm.RPMTAG_FILECLASS]]
         try:  # rpm >= 4.7.0
             filecaps = self.header[rpm.RPMTAG_FILECAPS]
-        except:
+        except AttributeError:
             filecaps = None
 
         # rpm-python < 4.6 does not return a list for this (or FILEDEVICES,
@@ -915,9 +915,11 @@ class Pkg(AbstractPkg):
         Depending on rpm-python version, the string may or may not include
         interpreter arguments, if any.
         """
+        if which is None:
+            return ''
         prog = self[which]
         if prog is None:
-            prog = ""
+            prog = ''
         elif isinstance(prog, (list, tuple)):
             # http://rpm.org/ticket/847#comment:2
             prog = "".join(prog)
diff -up rpmlint-rpmlint-1.10/rpmlint.flake rpmlint-rpmlint-1.10/rpmlint
--- rpmlint-rpmlint-1.10/rpmlint.flake	2017-09-05 02:40:05.000000000 -0400
+++ rpmlint-rpmlint-1.10/rpmlint	2018-04-17 12:22:20.682609674 -0400
@@ -20,7 +20,7 @@ import tempfile
 
 try:
     import importlib
-except:  # Python < 2.7
+except ImportError:  # Python < 2.7
     importlib = None
     import imp
 
diff -up rpmlint-rpmlint-1.10/SCLCheck.py.flake rpmlint-rpmlint-1.10/SCLCheck.py
--- rpmlint-rpmlint-1.10/SCLCheck.py.flake	2017-09-05 02:40:05.000000000 -0400
+++ rpmlint-rpmlint-1.10/SCLCheck.py	2018-04-17 12:22:20.682609674 -0400
@@ -50,7 +50,7 @@ def index_or_sub(source, word, sub=0):
     """
     try:
         return source.index(word)
-    except:
+    except ValueError:
         return sub
 
 
diff -up rpmlint-rpmlint-1.10/SpecCheck.py.flake rpmlint-rpmlint-1.10/SpecCheck.py
--- rpmlint-rpmlint-1.10/SpecCheck.py.flake	2017-09-05 02:40:05.000000000 -0400
+++ rpmlint-rpmlint-1.10/SpecCheck.py	2018-04-17 12:22:20.682609674 -0400
@@ -571,7 +571,7 @@ class SpecCheck(AbstractCheck.AbstractCh
             try:
                 ts = rpm.TransactionSet()
                 spec_obj = ts.parseSpec(self._spec_file)
-            except:
+            except rpm.error:
                 # errors logged above already
                 pass
             if spec_obj:
diff -up rpmlint-rpmlint-1.10/ZipCheck.py.flake rpmlint-rpmlint-1.10/ZipCheck.py
--- rpmlint-rpmlint-1.10/ZipCheck.py.flake	2017-09-05 02:40:05.000000000 -0400
+++ rpmlint-rpmlint-1.10/ZipCheck.py	2018-04-17 12:22:20.682609674 -0400
@@ -43,6 +43,10 @@ class ZipCheck(AbstractCheck.AbstractChe
                     badcrc = z.testzip()
                     if badcrc:
                         printError(pkg, 'bad-crc-in-zip', badcrc, fname)
+                except zipfile.error:
+                    printWarning(pkg, 'unable-to-read-zip', '%s: %s' %
+                                 (fname, sys.exc_info()[1]))
+                else:
                     compressed = False
                     for zinfo in z.infolist():
                         if zinfo.compress_type != zipfile.ZIP_STORED:
@@ -70,9 +74,6 @@ class ZipCheck(AbstractCheck.AbstractChe
                             if want_indexed_jars:
                                 printWarning(pkg, 'jar-not-indexed', fname)
                             pass
-                except:
-                    printWarning(pkg, 'unable-to-read-zip', '%s: %s' %
-                                 (fname, sys.exc_info()[1]))
 
                 z and z.close()
 
