]> www.infradead.org Git - mtd-utils.git/commitdiff
jffs2reader: convert to common.h helpers
authorMike Frysinger <vapier@gentoo.org>
Sat, 2 Oct 2010 18:58:09 +0000 (14:58 -0400)
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
Mon, 4 Oct 2010 07:39:52 +0000 (10:39 +0300)
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
jffs2reader.c

index 0cdff195a18e0412a4710f7977de4e55cda2d2d8..d5a3d956fdbd1cfcfdd2bae0e4291cd52f15f3e6 100644 (file)
@@ -77,6 +77,7 @@ BUGS:
 #include <sys/param.h>
 #include <dirent.h>
 #include <linux/jffs2.h>
+#include "common.h"
 
 #define SCRATCH_SIZE (5*1024*1024)
 
@@ -136,10 +137,8 @@ void putblock(char *b, size_t bsize, size_t * rsize,
 {
        uLongf dlen = n->dsize;
 
-       if (n->isize > bsize || (n->offset + dlen) > bsize) {
-               fprintf(stderr, "File does not fit into buffer!\n");
-               exit(EXIT_FAILURE);
-       }
+       if (n->isize > bsize || (n->offset + dlen) > bsize)
+               errmsg_die("File does not fit into buffer!");
 
        if (*rsize < n->isize)
                bzero(b + *rsize, n->isize - *rsize);
@@ -163,8 +162,7 @@ void putblock(char *b, size_t bsize, size_t * rsize,
                        /* [DYN]RUBIN support required! */
 
                default:
-                       fprintf(stderr, "Unsupported compression method!\n");
-                       exit(EXIT_FAILURE);
+                       errmsg_die("Unsupported compression method!");
        }
 
        *rsize = n->isize;
@@ -188,7 +186,7 @@ struct dir *putdir(struct dir *dd, struct jffs2_raw_dirent *n)
 
        if (n->ino) {
                if (dd == NULL) {
-                       d = malloc(sizeof(struct dir));
+                       d = xmalloc(sizeof(struct dir));
                        d->type = n->type;
                        memcpy(d->name, n->name, n->nsize);
                        d->nsize = n->nsize;
@@ -208,7 +206,7 @@ struct dir *putdir(struct dir *dd, struct jffs2_raw_dirent *n)
                        }
 
                        if (dd->next == NULL) {
-                               dd->next = malloc(sizeof(struct dir));
+                               dd->next = xmalloc(sizeof(struct dir));
                                dd->next->type = n->type;
                                memcpy(dd->next->name, n->name, n->nsize);
                                dd->next->nsize = n->nsize;
@@ -344,7 +342,7 @@ void printdir(char *o, size_t size, struct dir *d, char *path, int recurse)
                }
                ri = find_raw_inode(o, size, d->ino);
                if (!ri) {
-                       fprintf(stderr, "bug: raw_inode missing!\n");
+                       warnmsg("bug: raw_inode missing!");
                        d = d->next;
                        continue;
                }
@@ -379,11 +377,7 @@ void printdir(char *o, size_t size, struct dir *d, char *path, int recurse)
 
                if (d->type == DT_DIR && recurse) {
                        char *tmp;
-                       tmp = malloc(BUFSIZ);
-                       if (!tmp) {
-                               fprintf(stderr, "memory exhausted\n");
-                               exit(EXIT_FAILURE);
-                       }
+                       tmp = xmalloc(BUFSIZ);
                        sprintf(tmp, "%s/%s", path, d->name);
                        lsdir(o, size, tmp, recurse);           /* Go recursive */
                        free(tmp);
@@ -817,11 +811,8 @@ void lsdir(char *o, size_t size, char *path, int recurse)
        dd = resolvepath(o, size, 1, path, &ino);
 
        if (ino == 0 ||
-                       (dd == NULL && ino == 0) || (dd != NULL && dd->type != DT_DIR)) {
-               fprintf(stderr, "%s: %s: No such file or directory\n",
-                               PROGRAM_NAME, path);
-               exit(EXIT_FAILURE);
-       }
+                       (dd == NULL && ino == 0) || (dd != NULL && dd->type != DT_DIR))
+               errmsg_die("%s: No such file or directory", path);
 
        d = collectdir(o, size, ino, d);
        printdir(o, size, d, path, recurse);
@@ -848,15 +839,11 @@ void catfile(char *o, size_t size, char *path, char *b, size_t bsize,
 
        dd = resolvepath(o, size, 1, path, &ino);
 
-       if (ino == 0) {
-               fprintf(stderr, "%s: No such file or directory\n", path);
-               exit(EXIT_FAILURE);
-       }
+       if (ino == 0)
+               errmsg_die("%s: No such file or directory", path);
 
-       if (dd == NULL || dd->type != DT_REG) {
-               fprintf(stderr, "%s: Not a regular file\n", path);
-               exit(EXIT_FAILURE);
-       }
+       if (dd == NULL || dd->type != DT_REG)
+               errmsg_die("%s: Not a regular file", path);
 
        ri = find_raw_inode(o, size, ino);
        putblock(b, bsize, rsize, ri);
@@ -896,36 +883,22 @@ int main(int argc, char **argv)
        }
 
        fd = open(argv[optind], O_RDONLY);
-       if (fd == -1) {
-               fprintf(stderr, "%s: %s\n", argv[optind], strerror(errno));
-               exit(2);
-       }
+       if (fd == -1)
+               sys_errmsg_die("%s", argv[optind]);
 
-       if (fstat(fd, &st)) {
-               fprintf(stderr, "%s: %s\n", argv[optind], strerror(errno));
-               exit(3);
-       }
+       if (fstat(fd, &st))
+               sys_errmsg_die("%s", argv[optind]);
 
-       buf = malloc((size_t) st.st_size);
-       if (buf == NULL) {
-               fprintf(stderr, "%s: memory exhausted\n", argv[optind]);
-               exit(4);
-       }
+       buf = xmalloc((size_t) st.st_size);
 
-       if (read(fd, buf, st.st_size) != (ssize_t) st.st_size) {
-               fprintf(stderr, "%s: %s\n", argv[optind], strerror(errno));
-               exit(5);
-       }
+       if (read(fd, buf, st.st_size) != (ssize_t) st.st_size)
+               sys_errmsg_die("%s", argv[optind]);
 
        if (dir)
                lsdir(buf, st.st_size, dir, recurse);
 
        if (file) {
-               scratch = malloc(SCRATCH_SIZE);
-               if (scratch == NULL) {
-                       fprintf(stderr, "%s: memory exhausted\n", argv[optind]);
-                       exit(6);
-               }
+               scratch = xmalloc(SCRATCH_SIZE);
 
                catfile(buf, st.st_size, file, scratch, SCRATCH_SIZE, &ssize);
                free(scratch);