target: fix null pointer exception
[fw/openocd] / src / target / armv4_5.c
index 07c8c6ebc9becedbad81fc5f62a3081f1fe38bba..e576d9c0b8a66cbe67ef378e4970e100e9d9aa47 100644 (file)
@@ -612,7 +612,6 @@ COMMAND_HANDLER(handle_armv4_5_reg_command)
 {
        struct target *target = get_current_target(CMD_CTX);
        struct arm *armv4_5 = target_to_arm(target);
-       unsigned num_regs;
        struct reg *regs;
 
        if (!is_arm(armv4_5))
@@ -645,7 +644,6 @@ COMMAND_HANDLER(handle_armv4_5_reg_command)
                return ERROR_FAIL;
        }
 
-       num_regs = armv4_5->core_cache->num_regs;
        regs = armv4_5->core_cache->reg_list;
 
        for (unsigned mode = 0; mode < ARRAY_SIZE(arm_mode_data); mode++) {
@@ -743,7 +741,13 @@ COMMAND_HANDLER(handle_arm_disassemble_command)
 {
        int retval = ERROR_OK;
        struct target *target = get_current_target(CMD_CTX);
-       struct arm *arm = target ? target_to_arm(target) : NULL;
+
+       if (target == NULL) {
+               LOG_ERROR("No target selected");
+               return ERROR_FAIL;
+       }
+
+       struct arm *arm = target_to_arm(target);
        uint32_t address;
        int count = 1;
        int thumb = 0;
@@ -948,7 +952,13 @@ static int jim_mcrmrc(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
 COMMAND_HANDLER(handle_arm_semihosting_command)
 {
        struct target *target = get_current_target(CMD_CTX);
-       struct arm *arm = target ? target_to_arm(target) : NULL;
+
+       if (target == NULL) {
+               LOG_ERROR("No target selected");
+               return ERROR_FAIL;
+       }
+
+       struct arm *arm = target_to_arm(target);
 
        if (!is_arm(arm)) {
                command_print(CMD_CTX, "current target isn't an ARM");
@@ -1307,6 +1317,8 @@ int arm_checksum_memory(struct target *target,
        uint32_t i;
        uint32_t exit_var = 0;
 
+       /* see contib/loaders/checksum/armv4_5_crc.s for src */
+
        static const uint32_t arm_crc_code[] = {
                0xE1A02000,             /* mov          r2, r0 */
                0xE3E00000,             /* mov          r0, #0xffffffff */