diff --git a/README.txt b/README.txt index 2af80c3..da4be03 100644 --- a/README.txt +++ b/README.txt @@ -1,24 +1,4 @@ -# Simple dd-like image writer with additional security checks. - -``` -writeimg v0.2.0, Rev. 5323932-dirty -In honor of SwePwnage - the OG disk destroyer -Copyright (C) 2026 Imbus, BSD-2-Clause -Build date: 2026-02-07 - -Usage: - writeimg [-v] -d - -Args: - Binary image file - -v Verify only - -d device Target block device - -h, --help Print this help message - -n, --noconfirm Do not ask for premission - -V, --version Print version -``` - -## Testing +Simple dd-like image writer with additional security checks. dd if=/dev/zero of=./disk.img bs=1M count=1024 losetup -fP ./disk.img diff --git a/writeimg.c b/writeimg.c index 7bcd467..3d6c04b 100644 --- a/writeimg.c +++ b/writeimg.c @@ -175,8 +175,7 @@ int perform_write(write_job_t *job) { int cmp = memcmp((const void *)job->buffer2, (const void *)job->buffer, (size_t)read_file); if (0 != cmp) { - fflush(stdout); - fprintf(stderr, "\nWARNING: File did not verify correctly!\n"); + fprintf(stderr, "WARNING: File did not verify correctly!\n"); exit(EXIT_FAILURE); } } @@ -261,17 +260,11 @@ int main(int argc, char *argv[]) { } close(fd); - wjob.total_bytes = file_stat.st_size; - assert(file_stat.st_size >= 0); - if (!wjob.verify_only) - printf("Writing \"%s\" (%.1f MiB) to \"%s\"\n", - basename(wjob.filename), - BYTES_TO_MIB(wjob.total_bytes), - wjob.dev_name); + printf("Writing %s to %s\n", wjob.filename, wjob.dev_name); if (ask_permission && !wjob.verify_only) { - printf("Is this okay? (y/N): "); + printf("Is this okay? (y/n): "); fflush(stdout); if ('y' != getchar()) { printf("Aborting...\n"); @@ -287,6 +280,9 @@ int main(int argc, char *argv[]) { wjob.bufsize = BLOCKSIZE; wjob.block_size = BLOCKSIZE; + wjob.total_bytes = file_stat.st_size; + assert(file_stat.st_size >= 0); + perform_write(&wjob); if (wjob.buffer)