summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--misc-utils/mtd_debug.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/misc-utils/mtd_debug.c b/misc-utils/mtd_debug.c
index d65ad36..c0b7109 100644
--- a/misc-utils/mtd_debug.c
+++ b/misc-utils/mtd_debug.c
@@ -112,12 +112,12 @@ static int flash_to_file(int fd, off_t offset, size_t len, const char *filename)
if (offset != lseek(fd, offset, SEEK_SET)) {
perror("lseek()");
- goto err0;
+ return 1;
}
outfd = creat(filename, 0666);
if (outfd < 0) {
perror("creat()");
- goto err1;
+ return 1;
}
retry:
@@ -130,7 +130,7 @@ retry:
goto retry;
}
perror("malloc()");
- goto err0;
+ goto fail;
}
do {
if (n <= size)
@@ -139,7 +139,7 @@ retry:
if (err < 0) {
fprintf(stderr, "%s: read, size %#x, n %#x\n", __func__, size, n);
perror("read()");
- goto err2;
+ goto fail;
}
if (err < size) {
fprintf(stderr, "%s: short read, requested %#x, read %#x\n", __func__, size, err);
@@ -148,11 +148,11 @@ retry:
if (err < 0) {
fprintf(stderr, "%s: write, size %#x, n %#x\n", __func__, size, n);
perror("write()");
- goto err2;
+ goto fail;
}
if (err != size) {
fprintf(stderr, "Couldn't copy entire buffer to %s. (%d/%d bytes copied)\n", filename, err, size);
- goto err2;
+ goto fail;
}
n -= size;
} while (n > 0);
@@ -162,13 +162,9 @@ retry:
close(outfd);
printf("Copied %zu bytes from address 0x%.8llx in flash to %s\n", len, (unsigned long long)offset, filename);
return 0;
-
-err2:
+fail:
close(outfd);
-err1:
- if (buf != NULL)
- free(buf);
-err0:
+ free(buf);
return 1;
}