getmaskingreason: EAPI metadata safety
authorZac Medico <zmedico@gentoo.org>
Thu, 9 Jun 2011 13:13:32 +0000 (06:13 -0700)
committerZac Medico <zmedico@gentoo.org>
Thu, 9 Jun 2011 13:13:55 +0000 (06:13 -0700)
Return early since otherwise we might produce invalid results given
that the EAPI is not supported.

pym/portage/package/ebuild/getmaskingreason.py

index f027876d8a8c877bb9fc0c197c8f6a36c6a1b673..f2af6387b729f658982eba718e1052833af01517 100644 (file)
@@ -47,6 +47,17 @@ def getmaskingreason(mycpv, metadata=None, settings=None,
                if myrepo is not None:
                        myrepo = _gen_valid_repo(metadata["repository"])
 
+       if metadata is not None and \
+               not portage.eapi_is_supported(metadata["EAPI"]):
+               # Return early since otherwise we might produce invalid
+               # results given that the EAPI is not supported. Also,
+               # metadata is mostly useless in this case since it doesn't
+               # contain essential things like SLOT.
+               if return_location:
+                       return (None, None)
+               else:
+                       return None
+
        # Sometimes we can't access SLOT or repository due to corruption.
        pkg = mycpv
        if metadata is not None: