mirror of
https://github.com/freebsd/freebsd-src
synced 2024-07-22 10:48:02 +00:00
od(1): Fix skip value handling
POSIX defines -j as the number of bytes that od(1) should skip over the concatenated input files. The existing code tries to implement this behavior by checking if the current address was smaller than the skip value. However, this is not correct, because we adjust both the skip value and the address at the same time when we do fseeko (when file is seekable) or getchar (when file is not seekable). This commit fixes the problem by expecting the skip value to be zero upon return of next(). If the condition is not satisfied, a diagnostic message will be issued. Reported-by: Mohamed Akram <mohd.akram@outlook.com> Reviewed-by: emaste PR: 271832 MFC-after: 2 weeks Differential Revision: https://reviews.freebsd.org/D40446
This commit is contained in:
parent
653738e895
commit
1232c7884d
|
@ -263,7 +263,7 @@ get(void)
|
|||
* block and set the end flag.
|
||||
*/
|
||||
if (!length || (ateof && !next((char **)NULL))) {
|
||||
if (odmode && address < skip)
|
||||
if (odmode && skip > 0)
|
||||
errx(1, "cannot skip past end of input");
|
||||
if (need == blocksize)
|
||||
return((u_char *)NULL);
|
||||
|
|
Loading…
Reference in a new issue