Ejemplo n.º 1
0
    def test_mixed(self):
        """Get patch information from git mailimport and extra DEP-3 headers"""
        patchfile = os.path.join(self.data_dir,
                                 "usbip-fix-misuse-of-strncpy.patch")
        self.assertTrue(os.path.exists(patchfile))
        p = Dep3Patch(patchfile)
        self.assertEqual("usbip: Fix misuse of strncpy()", p.subject)
        self.assertEqual("Ben Hutchings", p.author)
        self.assertEqual("*****@*****.**", p.email)
        self.assertEqual(
            """\
Bug-Debian: https://bugs.debian.org/897802

gcc 8 reports:

usbip_device_driver.c: In function ‘read_usb_vudc_device’:
usbip_device_driver.c:106:2: error: ‘strncpy’ specified bound 256 equals destination size [-Werror=stringop-truncation]
  strncpy(dev->path, path, SYSFS_PATH_MAX);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
usbip_device_driver.c:125:2: error: ‘strncpy’ specified bound 32 equals destination size [-Werror=stringop-truncation]
  strncpy(dev->busid, name, SYSFS_BUS_ID_SIZE);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I'm not convinced it makes sense to truncate the copied strings here,
but since we're already doing so let's ensure they're still null-
terminated.  We can't easily use strlcpy() here, so use snprintf().

usbip_common.c has the same problem.

Signed-off-by: Ben Hutchings <*****@*****.**>
""", p.long_desc)
Ejemplo n.º 2
0
 def test_encoding(self):
     """Make sure broken encoding does no affect import"""
     patchfile = os.path.join(self.data_dir, "dep3-iso8859-1.patch")
     self.assertTrue(os.path.exists(patchfile))
     p = Dep3Patch(patchfile)
     self.assertEqual(
         r'Replace all -- in man page by \-\- to make lintian happy.',
         p.subject)
     self.assertEqual("Roland Rosenfeld", p.author)
     self.assertEqual("*****@*****.**", p.email)
     self.assertEqual("", p.long_desc)
Ejemplo n.º 3
0
    def test_pseudo_headers(self):
        """Convert extra DEP-3 header into a git pseudo-header"""
        patchfile = os.path.join(self.data_dir, "dep3-longdesc-bug.patch")
        self.assertTrue(os.path.exists(patchfile))
        p = Dep3Patch(patchfile)
        self.assertEqual('Summary', p.subject)
        self.assertEqual("Ben Hutchings", p.author)
        self.assertEqual("*****@*****.**", p.email)
        self.assertEqual(
            """\
Bug: https://bugs.example.org/123456

Long description
""", p.long_desc)
Ejemplo n.º 4
0
    def test_parse(self):
        """Get patch information from git mailimport with base64 body but plain text patch"""
        patchfile = os.path.join(self.data_dir, "base64.patch")
        self.assertTrue(os.path.exists(patchfile))
        p = Dep3Patch(patchfile)
        self.assertEqual("Sort files in archive (reproducible builds)",
                         p.subject)
        self.assertEqual("Nick Leverton", p.author)
        self.assertEqual("*****@*****.**", p.email)
        self.assertEqual(
            """\
Sort files when using mergelib to create libnullmailer.a, to get
reproducible build

Author: Alexis Bienvenüe <*****@*****.**>
""", p.long_desc)
Ejemplo n.º 5
0
 def test_parse(self):
     """Don't fail on empty patch header"""
     patchfile = os.path.join(self.data_dir, "916545.patch")
     self.assertTrue(os.path.exists(patchfile))
     p = Dep3Patch(patchfile)
     self.assertEqual("916545", p.subject)