diff options
Diffstat (limited to 'misc-utils/mtd_debug.c')
-rw-r--r-- | misc-utils/mtd_debug.c | 20 |
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; } |