]> git.sur5r.net Git - u-boot/blobdiff - common/cmd_sf.c
fdt: Identify scripts in ITBs as printable strings
[u-boot] / common / cmd_sf.c
index 98e4162114d689dacb903cd4943f39b6e1bee4a7..5ac1d0c4c1ef4ef9cc34b30b3e056b2a76744beb 100644 (file)
@@ -211,6 +211,13 @@ static int do_spi_flash_read_write(int argc, char * const argv[])
        if (*argv[3] == 0 || *endp != 0)
                return -1;
 
+       /* Consistency checking */
+       if (offset + len > flash->size) {
+               printf("ERROR: attempting %s past flash size (%#x)\n",
+                       argv[0], flash->size);
+               return 1;
+       }
+
        buf = map_physmem(addr, len, MAP_WRBACK);
        if (!buf) {
                puts("Failed to map physical memory\n");
@@ -252,6 +259,13 @@ static int do_spi_flash_erase(int argc, char * const argv[])
        if (ret != 1)
                return -1;
 
+       /* Consistency checking */
+       if (offset + len > flash->size) {
+               printf("ERROR: attempting %s past flash size (%#x)\n",
+                       argv[0], flash->size);
+               return 1;
+       }
+
        ret = spi_flash_erase(flash, offset, len);
        if (ret) {
                printf("SPI flash %s failed\n", argv[0]);
@@ -298,7 +312,7 @@ done:
                return ret;
 
 usage:
-       return cmd_usage(cmdtp);
+       return CMD_RET_USAGE;
 }
 
 U_BOOT_CMD(