Bug 203940 - makefs: Coverity CID 976847: Delayed error with wrong output file type
Summary: makefs: Coverity CID 976847: Delayed error with wrong output file type
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: bin (show other bugs)
Version: CURRENT
Hardware: Any Any
: --- Affects Some People
Assignee: freebsd-bugs (Nobody)
Keywords: patch
Depends on:
Reported: 2015-10-21 18:15 UTC by scdbackup
Modified: 2019-01-26 15:30 UTC (History)
2 users (show)

See Also:


Note You need to log in before you can comment on or make changes to this bug.
Description scdbackup 2015-10-21 18:15:12 UTC

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.