Fix for segfault in handle_nand_dump_command.
authorPaul Richards <paulr227@gmail.com>
Wed, 15 Dec 2010 12:42:03 +0000 (21:42 +0900)
committerØyvind Harboe <oyvind.harboe@zylin.com>
Wed, 15 Dec 2010 13:14:02 +0000 (14:14 +0100)
src/flash/nand/tcl.c

index 15cf1797d5fe0be9fcd7bfdf6a382bce12617004..af91fc8924f1b450344a3ab27008eb73bcca3321 100644 (file)
@@ -357,6 +357,7 @@ COMMAND_HANDLER(handle_nand_verify_command)
 
 COMMAND_HANDLER(handle_nand_dump_command)
 {
+       int filesize;
        struct nand_device *nand = NULL;
        struct nand_fileio_state s;
        int retval = CALL_COMMAND_HANDLER(nand_fileio_parse_args,
@@ -386,13 +387,12 @@ COMMAND_HANDLER(handle_nand_dump_command)
                s.address += nand->page_size;
        }
 
+       retval = fileio_size(&s.fileio, &filesize);
+       if (retval != ERROR_OK)
+               return retval;
+
        if (nand_fileio_finish(&s) == ERROR_OK)
        {
-               int filesize;
-               retval = fileio_size(&s.fileio, &filesize);
-               if (retval != ERROR_OK)
-                       return retval;
-
                command_print(CMD_CTX, "dumped %ld bytes in %fs (%0.3f KiB/s)",
                                (long)filesize, duration_elapsed(&s.bench),
                                duration_kbps(&s.bench, filesize));