Introduction
Introduction Statistics Contact Development Disclaimer Help
dd: Consider block count in inner read loop - sbase - suckless unix tools
git clone git://git.suckless.org/sbase
Log
Files
Refs
README
LICENSE
---
commit fb16e7c6ad0e8d27cba8ee6279f71f88c7f95fd7
parent 00995639fe3b885494d7dfeda7af618ba018fdd1
Author: Michael Forney <[email protected]>
Date: Wed, 12 Apr 2023 20:13:51 -0700
dd: Consider block count in inner read loop
When ibs is smaller than obs, checking the block count in the outer
loop is not sufficient; we need to break out of the inner read loop
once we've read the specified number of blocks.
Thanks to phoebos for reporting this issue.
Diffstat:
M dd.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
---
diff --git a/dd.c b/dd.c
@@ -173,8 +173,12 @@ main(int argc, char *argv[])
eprintf("lseek:");
/* XXX: handle non-seekable files */
}
- while (!eof && (count == -1 || ifull + ipart < count)) {
+ while (!eof) {
while (ipos - opos < obs) {
+ if (ifull + ipart == count) {
+ eof = 1;
+ break;
+ }
ret = read(ifd, buf + ipos, ibs);
if (ret == 0) {
eof = 1;
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.