Unchecked Return Value in stdio.c

Joel Sherrill joel@rtems.org
Fri Jun 18 20:07:20 GMT 2021


Hi

I hope this email's formatting isn't an issue. I converted the
Scan output to plain text.

Looking through Coverity Scan's report, I see this:

85  if (fp->_flags & __SAPP)

CID 175328 (#1 of 1): Unchecked return value (CHECKED_RETURN)2.
check_return: Calling _lseek_r without checking return value (as is
done elsewhere 7 out of 8 times).
 86    _lseek_r (ptr, fp->_file, (_off_t) 0, SEEK_END);
 87  fp->_flags &= ~__SOFF;        /* in case O_APPEND mode is set */


If the _lseek_r() fails, shouldn't this return an error? Looking at
where it appears to get called indirectly, it looks like it is acceptable
for this return -1.

If this can't fail or it isn't an issue if it fails, then this should
have (void) added along with a comment.

Looking at the POSIX standard,  the lseek() should fail if the fildes
argument is associated with a pipe, FIFO, or socket. It may mean
an errno of ESPIPE is acceptable and the method should continue.

https://pubs.opengroup.org/onlinepubs/009696699/functions/lseek.html

Suggestions on how to resolve this appreciated.

Thanks.

--joel


More information about the Newlib mailing list