000-upstream_jffs2reader.patch 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. From fec81abd9593fe11ba8577d38e4143e5708e3343 Mon Sep 17 00:00:00 2001
  2. From: Mike Frysinger <[email protected]>
  3. Date: Sat, 2 Oct 2010 14:58:09 -0400
  4. Subject: [PATCH] jffs2reader: convert to common.h helpers
  5. Signed-off-by: Mike Frysinger <[email protected]>
  6. Signed-off-by: Artem Bityutskiy <[email protected]>
  7. ---
  8. jffs2reader.c | 71 +++++++++++++++++---------------------------------------
  9. 1 files changed, 22 insertions(+), 49 deletions(-)
  10. diff --git a/jffs2reader.c b/jffs2reader.c
  11. index 0cdff19..d5a3d95 100644
  12. --- a/jffs2reader.c
  13. +++ b/jffs2reader.c
  14. @@ -77,6 +77,7 @@ BUGS:
  15. #include <sys/param.h>
  16. #include <dirent.h>
  17. #include <linux/jffs2.h>
  18. +#include "common.h"
  19. #define SCRATCH_SIZE (5*1024*1024)
  20. @@ -136,10 +137,8 @@ void putblock(char *b, size_t bsize, size_t * rsize,
  21. {
  22. uLongf dlen = n->dsize;
  23. - if (n->isize > bsize || (n->offset + dlen) > bsize) {
  24. - fprintf(stderr, "File does not fit into buffer!\n");
  25. - exit(EXIT_FAILURE);
  26. - }
  27. + if (n->isize > bsize || (n->offset + dlen) > bsize)
  28. + errmsg_die("File does not fit into buffer!");
  29. if (*rsize < n->isize)
  30. bzero(b + *rsize, n->isize - *rsize);
  31. @@ -163,8 +162,7 @@ void putblock(char *b, size_t bsize, size_t * rsize,
  32. /* [DYN]RUBIN support required! */
  33. default:
  34. - fprintf(stderr, "Unsupported compression method!\n");
  35. - exit(EXIT_FAILURE);
  36. + errmsg_die("Unsupported compression method!");
  37. }
  38. *rsize = n->isize;
  39. @@ -188,7 +186,7 @@ struct dir *putdir(struct dir *dd, struct jffs2_raw_dirent *n)
  40. if (n->ino) {
  41. if (dd == NULL) {
  42. - d = malloc(sizeof(struct dir));
  43. + d = xmalloc(sizeof(struct dir));
  44. d->type = n->type;
  45. memcpy(d->name, n->name, n->nsize);
  46. d->nsize = n->nsize;
  47. @@ -208,7 +206,7 @@ struct dir *putdir(struct dir *dd, struct jffs2_raw_dirent *n)
  48. }
  49. if (dd->next == NULL) {
  50. - dd->next = malloc(sizeof(struct dir));
  51. + dd->next = xmalloc(sizeof(struct dir));
  52. dd->next->type = n->type;
  53. memcpy(dd->next->name, n->name, n->nsize);
  54. dd->next->nsize = n->nsize;
  55. @@ -344,7 +342,7 @@ void printdir(char *o, size_t size, struct dir *d, char *path, int recurse)
  56. }
  57. ri = find_raw_inode(o, size, d->ino);
  58. if (!ri) {
  59. - fprintf(stderr, "bug: raw_inode missing!\n");
  60. + warnmsg("bug: raw_inode missing!");
  61. d = d->next;
  62. continue;
  63. }
  64. @@ -379,11 +377,7 @@ void printdir(char *o, size_t size, struct dir *d, char *path, int recurse)
  65. if (d->type == DT_DIR && recurse) {
  66. char *tmp;
  67. - tmp = malloc(BUFSIZ);
  68. - if (!tmp) {
  69. - fprintf(stderr, "memory exhausted\n");
  70. - exit(EXIT_FAILURE);
  71. - }
  72. + tmp = xmalloc(BUFSIZ);
  73. sprintf(tmp, "%s/%s", path, d->name);
  74. lsdir(o, size, tmp, recurse); /* Go recursive */
  75. free(tmp);
  76. @@ -817,11 +811,8 @@ void lsdir(char *o, size_t size, char *path, int recurse)
  77. dd = resolvepath(o, size, 1, path, &ino);
  78. if (ino == 0 ||
  79. - (dd == NULL && ino == 0) || (dd != NULL && dd->type != DT_DIR)) {
  80. - fprintf(stderr, "%s: %s: No such file or directory\n",
  81. - PROGRAM_NAME, path);
  82. - exit(EXIT_FAILURE);
  83. - }
  84. + (dd == NULL && ino == 0) || (dd != NULL && dd->type != DT_DIR))
  85. + errmsg_die("%s: No such file or directory", path);
  86. d = collectdir(o, size, ino, d);
  87. printdir(o, size, d, path, recurse);
  88. @@ -848,15 +839,11 @@ void catfile(char *o, size_t size, char *path, char *b, size_t bsize,
  89. dd = resolvepath(o, size, 1, path, &ino);
  90. - if (ino == 0) {
  91. - fprintf(stderr, "%s: No such file or directory\n", path);
  92. - exit(EXIT_FAILURE);
  93. - }
  94. + if (ino == 0)
  95. + errmsg_die("%s: No such file or directory", path);
  96. - if (dd == NULL || dd->type != DT_REG) {
  97. - fprintf(stderr, "%s: Not a regular file\n", path);
  98. - exit(EXIT_FAILURE);
  99. - }
  100. + if (dd == NULL || dd->type != DT_REG)
  101. + errmsg_die("%s: Not a regular file", path);
  102. ri = find_raw_inode(o, size, ino);
  103. putblock(b, bsize, rsize, ri);
  104. @@ -896,36 +883,22 @@ int main(int argc, char **argv)
  105. }
  106. fd = open(argv[optind], O_RDONLY);
  107. - if (fd == -1) {
  108. - fprintf(stderr, "%s: %s\n", argv[optind], strerror(errno));
  109. - exit(2);
  110. - }
  111. + if (fd == -1)
  112. + sys_errmsg_die("%s", argv[optind]);
  113. - if (fstat(fd, &st)) {
  114. - fprintf(stderr, "%s: %s\n", argv[optind], strerror(errno));
  115. - exit(3);
  116. - }
  117. + if (fstat(fd, &st))
  118. + sys_errmsg_die("%s", argv[optind]);
  119. - buf = malloc((size_t) st.st_size);
  120. - if (buf == NULL) {
  121. - fprintf(stderr, "%s: memory exhausted\n", argv[optind]);
  122. - exit(4);
  123. - }
  124. + buf = xmalloc((size_t) st.st_size);
  125. - if (read(fd, buf, st.st_size) != (ssize_t) st.st_size) {
  126. - fprintf(stderr, "%s: %s\n", argv[optind], strerror(errno));
  127. - exit(5);
  128. - }
  129. + if (read(fd, buf, st.st_size) != (ssize_t) st.st_size)
  130. + sys_errmsg_die("%s", argv[optind]);
  131. if (dir)
  132. lsdir(buf, st.st_size, dir, recurse);
  133. if (file) {
  134. - scratch = malloc(SCRATCH_SIZE);
  135. - if (scratch == NULL) {
  136. - fprintf(stderr, "%s: memory exhausted\n", argv[optind]);
  137. - exit(6);
  138. - }
  139. + scratch = xmalloc(SCRATCH_SIZE);
  140. catfile(buf, st.st_size, file, scratch, SCRATCH_SIZE, &ssize);
  141. free(scratch);