tools/mtd-utils: add two upstream patches
SVN-Revision: 23453
This commit is contained in:
		
							
								
								
									
										165
									
								
								tools/mtd-utils/patches/000-upstream_jffs2reader.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										165
									
								
								tools/mtd-utils/patches/000-upstream_jffs2reader.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,165 @@ | |||||||
|  | From fec81abd9593fe11ba8577d38e4143e5708e3343 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Mike Frysinger <vapier@gentoo.org> | ||||||
|  | Date: Sat, 2 Oct 2010 14:58:09 -0400 | ||||||
|  | Subject: [PATCH] jffs2reader: convert to common.h helpers | ||||||
|  |  | ||||||
|  | Signed-off-by: Mike Frysinger <vapier@gentoo.org> | ||||||
|  | Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | ||||||
|  | --- | ||||||
|  |  jffs2reader.c |   71 +++++++++++++++++--------------------------------------- | ||||||
|  |  1 files changed, 22 insertions(+), 49 deletions(-) | ||||||
|  |  | ||||||
|  | diff --git a/jffs2reader.c b/jffs2reader.c | ||||||
|  | index 0cdff19..d5a3d95 100644 | ||||||
|  | --- a/jffs2reader.c | ||||||
|  | +++ b/jffs2reader.c | ||||||
|  | @@ -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); | ||||||
							
								
								
									
										28
									
								
								tools/mtd-utils/patches/000-upstream_nanddump.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								tools/mtd-utils/patches/000-upstream_nanddump.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | |||||||
|  | From: Baruch Siach <baruch@tkos.co.il> | ||||||
|  | Date: Mon, 11 Oct 2010 09:19:38 +0000 (+0200) | ||||||
|  | Subject: nanddump: fix initialization of bad blocks oob data buffer | ||||||
|  | X-Git-Url: http://git.infradead.org | ||||||
|  |  | ||||||
|  | nanddump: fix initialization of bad blocks oob data buffer | ||||||
|  |  | ||||||
|  | When dumping oob data of a bad block, initialize oobbuf with 0xff, instead of | ||||||
|  | readbuf.  This avoids bogus oob data on output. | ||||||
|  |  | ||||||
|  | Signed-off-by: Baruch Siach <baruch@tkos.co.il> | ||||||
|  | Acked-by: Mike Frysinger <vapier@gentoo.org> | ||||||
|  | Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | ||||||
|  | --- | ||||||
|  |  | ||||||
|  | diff --git a/nanddump.c b/nanddump.c | ||||||
|  | index 3589931..b7341a5 100644 | ||||||
|  | --- a/nanddump.c | ||||||
|  | +++ b/nanddump.c | ||||||
|  | @@ -452,7 +452,7 @@ int main(int argc, char * const argv[]) | ||||||
|  |  			continue; | ||||||
|  |   | ||||||
|  |  		if (badblock) { | ||||||
|  | -			memset (readbuf, 0xff, meminfo.oobsize); | ||||||
|  | +			memset(oobbuf, 0xff, meminfo.oobsize); | ||||||
|  |  		} else { | ||||||
|  |  			/* Read OOB data and exit on failure */ | ||||||
|  |  			oob.start = ofs; | ||||||
		Reference in New Issue
	
	Block a user
	 Alexandros C. Couloumbis
					Alexandros C. Couloumbis