Skip to content

Commit

Permalink
add test_65482 for memlean #40
Browse files Browse the repository at this point in the history
  • Loading branch information
gdraheim committed Mar 13, 2018
1 parent ff71508 commit 0482c92
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions test/zziptests.py
Original file line number Diff line number Diff line change
Expand Up @@ -3356,6 +3356,53 @@ def test_65479(self):
size = os.path.getsize(os.path.join(tmpdir, filename))
self.assertEqual(size, 82347)

url_CVE_2018_40 = "https://github.com/fantasy7082/image_test/blob/master"
zip_CVE_2018_40 = "002-mem-leaks-zip"
def test_65480(self):
""" info unzip -l $(CVE).zip """
tmpdir = self.testdir()
filename = self.zip_CVE_2018_40
file_url = self.url_CVE_2018_40
download_raw(file_url, filename, tmpdir)
exe = self.bins("unzip")
run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
returncodes = [0, 80])
self.assertIn("missing 21 bytes in zipfile", run.errors)
self.assertLess(len(run.output), 500)
self.assertLess(len(errors(run.errors)), 800)
#
run = shell("cd {tmpdir} && {exe} -o {filename}".format(**locals()),
returncodes = [3])
self.assertLess(len(run.output), 500)
self.assertLess(len(errors(run.errors)), 800)
self.assertIn("missing 21 bytes in zipfile", run.errors)
self.assertIn('expected central file header signature not found', run.errors)
# self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
self.assertFalse(os.path.exists(tmpdir+"/test"))
self.rm_testdir()
def test_65482(self):
""" unzzip-mem -l $(CVE).zip """
tmpdir = self.testdir()
filename = self.zip_CVE_2018_40
file_url = self.url_CVE_2018_40
download_raw(file_url, filename, tmpdir)
if not os.path.isfile(os.path.join(tmpdir, filename)): self.skipTest("missing " + filename)
exe = self.bins("unzzip-mem")
run = shell("{exe} -l {tmpdir}/{filename} ".format(**locals()),
returncodes = [0])
self.assertLess(len(run.output), 1500)
self.assertLess(len(errors(run.errors)), 1)
#
run = shell("cd {tmpdir} && ../{exe} {filename} ".format(**locals()),
returncodes = [120])
self.assertLess(len(run.output), 1500)
self.assertLess(len(errors(run.errors)), 10)
# self.assertEqual(os.path.getsize(tmpdir+"/test"), 3)
self.assertFalse(os.path.exists(tmpdir+"/test"))
#
run = shell("cd {tmpdir} && ../{exe} -p {filename} ".format(**locals()),
returncodes = [120])
self.rm_testdir()

def test_91000_zzshowme_check_sfx(self):
""" create an *.exe that can extract its own zip content """
Expand Down

0 comments on commit 0482c92

Please sign in to comment.