ARM9TDMI: Fix segfault.
authorAntonio Borneo <borneo.antonio@gmail.com>
Wed, 30 Dec 2009 18:43:56 +0000 (02:43 +0800)
committerDavid Brownell <dbrownell@users.sourceforge.net>
Wed, 30 Dec 2009 19:51:29 +0000 (11:51 -0800)
The handler for "arm9tdmi vector_catch ..." did not check
if target has already been examined.  Without this fix it
segfaults when using NULL pointer "arm7_9->eice_cache".

Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
src/target/arm9tdmi.c

index 0e99cd1e584271cc865d6ec7c0b32025a18ffb61..ae0c4e05edd30462e0e7667758e8e708e2de8984 100644 (file)
@@ -834,6 +834,12 @@ COMMAND_HANDLER(handle_arm9tdmi_catch_vectors_command)
        struct reg *vector_catch;
        uint32_t vector_catch_value;
 
+       if (!target_was_examined(target))
+       {
+               LOG_ERROR("Target not examined yet");
+               return ERROR_FAIL;
+       }
+
        /* it's uncommon, but some ARM7 chips can support this */
        if (arm7_9->common_magic != ARM7_9_COMMON_MAGIC
                        || !arm7_9->has_vector_catch) {