]> git.sur5r.net Git - openocd/commitdiff
transport: fix segfault in transport select
authorØyvind Harboe <oyvind.harboe@zylin.com>
Wed, 7 Jul 2010 12:56:56 +0000 (14:56 +0200)
committerØyvind Harboe <oyvind.harboe@zylin.com>
Wed, 7 Jul 2010 15:33:04 +0000 (17:33 +0200)
String compare against addresses in range 0 or so due
to not checking if there was an active session first.

Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
src/jtag/transport.c

index cee8ffb3934dfb8376c9c3cbd0d9adf0c2505a96..e431feec71f92a4df3dd4d3beaf068c618ebbbb1 100644 (file)
@@ -281,18 +281,17 @@ COMMAND_HANDLER(handle_transport_select)
                return ERROR_FAIL;
 
        case 1:                 /* "select FOO" */
-               if(strcmp(session->name, CMD_ARGV[0]) == 0) {
+               if ((session!= NULL) && strcmp(session->name, CMD_ARGV[0]) == 0) {
                        /* NOP */
                        LOG_DEBUG("transport '%s' is already selected",
                                        CMD_ARGV[0]);
                        return ERROR_OK;
                } else {
-
-               /* we can't change this session's transport after-the-fact */
-               if (session) {
-                       LOG_ERROR("session's transport is already selected.");
-                       return ERROR_FAIL;
-               }
+                       /* we can't change this session's transport after-the-fact */
+                       if (session) {
+                               LOG_ERROR("session's transport is already selected.");
+                               return ERROR_FAIL;
+                       }
                }
                break;