[Bug 203648] makefs: Coverity CID 1008927: sizeof() compared against desired bit count rather than byte count

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Thu Oct 8 19:27:00 UTC 2015


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=203648

            Bug ID: 203648
           Summary: makefs: Coverity CID 1008927: sizeof() compared
                    against desired bit count rather than byte count
           Product: Base System
           Version: 11.0-CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: bin
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: scdbackup at gmx.net

usr.sbin/makefs/cd9660/iso9660_rrip.c

CID 1008927: Operands don't affect result (CONSTANT_EXPRESSION_RESULT)
   result_independent_of_operands: (uint64_t)fnode->inode->st.st_dev >> 32
   is 0 regardless of the values of its operands. This occurs as an
   argument to a function call.

660                cd9660_bothendian_dword((uint64_t)fnode->inode->st.st_dev >>
32,
661                    pn_field->attr.rr_entry.PN.high);

--------------- Source analysis:

The complained statement is in an if case which obviously shall
take care for 64-bit dev_t.
But the test expression looks for 256-bit dev_t (which i doubt
that it does exist anywhere).

        if (sizeof (fnode->inode->st.st_dev) > 32)
               cd9660_bothendian_dword((uint64_t)fnode->inode->st.st_dev >> 32,
                   pn_field->attr.rr_entry.PN.high);
        else
                cd9660_bothendian_dword(0, pn_field->attr.rr_entry.PN.high);

--------------- Remedy proposal:

-        if (sizeof (fnode->inode->st.st_dev) > 32)
+        if (sizeof (fnode->inode->st.st_dev) > 4)

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list