#1168 frontend: don't traceback for invalid copr:// repos
Merged 4 years ago by praiskup. Opened 4 years ago by praiskup.

@@ -154,7 +154,11 @@

          copr_repo = helpers.copr_repo_fullname(repo_url)

          if not copr_repo:

              return None

-         owner, copr = copr_repo.split("/")

+         try:

+             owner, copr = copr_repo.split("/")

+         except:

+             # invalid format, e.g. multiple slashes in copr_repo

+             return None

          return ComplexLogic.get_copr_by_owner_safe(owner, copr)

  

      @staticmethod

@@ -131,6 +131,19 @@

                  assert fc1.forked_from_id == self.c1.id

                  assert fc1.mock_chroots == self.c1.mock_chroots

  

+     def test_copr_by_repo_safe(self, f_users, f_coprs, f_mock_chroots, f_builds,

+                                f_db):

+ 

+         assert ComplexLogic.get_copr_by_repo_safe("xxx") == None

+         assert ComplexLogic.get_copr_by_repo_safe("copr://") == None

+         assert ComplexLogic.get_copr_by_repo_safe("copr://a/b/c") == None

+ 

+         assert ComplexLogic.get_copr_by_repo_safe("copr://user1/foocopr") != None

+ 

+         # we could fix these in future

+         assert ComplexLogic.get_copr_by_repo_safe("copr:///user1/foocopr") == None

+         assert ComplexLogic.get_copr_by_repo_safe("copr://user1//foocopr") == None

+ 

  

  class FooModel(object):

      """

The repo [1] contained:

copr://ligenix/enterprise-buildtools/epel-7-$basearch/
copr://ligenix/enterprise-desktop/epel-7-$basearch/

.. which is invalid format, and the code shouldn't traceback. We should
add proper form validator to not allow adding wrong urls.

[1] https://copr.fedorainfracloud.org/coprs/ligenix/enterprise-virtualization/edit_chroot/epel-7-aarch64/

This deserves testcase, though.

Metadata Update from @praiskup:
- Pull-request tagged with: needs-work

4 years ago

rebased onto 0b8b71aa8080136297422010dbd4d41fb0066d34

4 years ago

Metadata Update from @praiskup:
- Pull-request untagged with: needs-work

4 years ago

rebased onto 5a7fd1e

4 years ago

Pull-Request has been merged by praiskup

4 years ago