diff --git a/board/trab/auto_update.c b/board/trab/auto_update.c index 9559d5e04e3a75dbb75ca1ab2fb61378a24c7885..9371637e9258f31d7b42a0a4655a3c31b18af15e 100644 --- a/board/trab/auto_update.c +++ b/board/trab/auto_update.c @@ -485,41 +485,45 @@ do_auto_update(void) * now check whether start and end are defined using environment * variables. */ - start = end = 0; + start = -1; + end = 0; env = getenv("firmware_st"); if (env != NULL) start = simple_strtoul(env, NULL, 16); env = getenv("firmware_nd"); if (env != NULL) end = simple_strtoul(env, NULL, 16); - if (start && end && end > start) + if (start >= 0 && end && end > start) ausize[IDX_FIRMWARE] = (end + 1) - start; - start = end = 0; + start = -1; + end = 0; env = getenv("kernel_st"); if (env != NULL) start = simple_strtoul(env, NULL, 16); env = getenv("kernel_nd"); if (env != NULL) end = simple_strtoul(env, NULL, 16); - if (start && end && end > start) + if (start >= 0 && end && end > start) ausize[IDX_KERNEL] = (end + 1) - start; - start = end = 0; + start = -1; + end = 0; env = getenv("app_st"); if (env != NULL) start = simple_strtoul(env, NULL, 16); env = getenv("app_nd"); if (env != NULL) end = simple_strtoul(env, NULL, 16); - if (start && end && end > start) + if (start >= 0 && end && end > start) ausize[IDX_APP] = (end + 1) - start; - start = end = 0; + start = -1; + end = 0; env = getenv("disk_st"); if (env != NULL) start = simple_strtoul(env, NULL, 16); env = getenv("disk_nd"); if (env != NULL) end = simple_strtoul(env, NULL, 16); - if (start && end && end > start) + if (start >= 0 && end && end > start) ausize[IDX_DISK] = (end + 1) - start; /* make sure that we see CTRL-C and save the old state */ old_ctrlc = disable_ctrlc(0);