[PATH,MTD-UTILS] Return error if failure when reading from standard input

Submitted by Nahor on June 4, 2009, 5:23 p.m.

Details

Message ID h08vuc$uut$1@ger.gmane.org
State New, archived
Headers show

Commit Message

Nahor June 4, 2009, 5:23 p.m.
The test to return SUCCESS or FAILURE at the end of nandwrite is done 
only when reading from a file. When reading from the standard input, 
nandwrite always returns success except for some cases at the begining.

This patches aims at fixing that by returning an error when jumping to 
the closeall label.

Regards,
	Nahor

Comments

Artem Bityutskiy June 8, 2009, 6:16 a.m.
On Thu, 2009-06-04 at 10:23 -0700, Nahor wrote:
> The test to return SUCCESS or FAILURE at the end of nandwrite is done 
> only when reading from a file. When reading from the standard input, 
> nandwrite always returns success except for some cases at the begining.
> 
> This patches aims at fixing that by returning an error when jumping to 
> the closeall label.

Looks ok to me. Please, send an applicable patch.

Patch hide | download patch | download mbox

--- a/nandwrite.c       2009-06-01 18:03:55.000000000 -0700
+++ b/nandwrite.c       2009-06-03 17:25:19.000000000 -0700
@@ -261,6 +261,7 @@ 
         int oobinfochanged = 0;
         struct nand_oobinfo old_oobinfo;
         int readcnt = 0;
+       bool failed = true;

         process_options(argc, argv);

@@ -623,6 +624,8 @@ 
                 mtdoffset += meminfo.writesize;
         }

+       failed = false;
+
  closeall:
         close(ifd);

@@ -637,7 +640,7 @@ 

         close(fd);

-       if ((ifd != STDIN_FILENO) && (imglen > 0)) {
+       if (failed || ((ifd != STDIN_FILENO) && (imglen > 0))) {
                 perror ("Data was only partially written due to error\n");
                 exit (EXIT_FAILURE);
         }