Bug 203940

Summary: makefs: Coverity CID 976847: Delayed error with wrong output file type
Product: Base System Reporter: scdbackup
Component: binAssignee: freebsd-bugs (Nobody) <bugs>
Status: New ---    
Severity: Affects Some People CC: avos, emaste
Priority: --- Keywords: patch
Version: CURRENT   
Hardware: Any   
OS: Any   

Description scdbackup 2015-10-21 18:15:12 UTC
usr.sbin/makefs/cd9660/cd9660_write.c

CID 976847 (#1 of 1): Argument cannot be negative (NEGATIVE_RETURNS)
   4. negative_returns: curpos is passed to a parameter that cannot be
   negative. [Note: The source code implementation of the function hasi
   been overridden by a builtin model.]

406        curpos = ftello(fd);

413        if (fseeko(fd, curpos, SEEK_SET) == -1)

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

This gesture lacks of an error check. The fseeko() call has one

413        if (fseeko(fd, curpos, SEEK_SET) == -1)
414                err(1, "fseeko");

It is not easy to imagine how a file pointer which is not suitable for
ftello() should get here, as makefs obviously is not prepared for
sequential output.

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

It cannot harm to show the user the direct error cause and not
an error of the subsequent fseeko(SEEK_SET).

         curpos = ftello(fd);
+        if (curpos < 0)
+                err(1, "ftello");
Comment 1 Enji Cooper freebsd_committer 2015-10-25 22:12:57 UTC
Bulk taking makefs bugs.
Comment 2 Enji Cooper freebsd_committer 2017-11-05 20:47:21 UTC
Releasing bugs back to the pool.