Use parse_uint in get_target to ensure target id is parsed properly.
authorzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Sat, 13 Jun 2009 00:32:40 +0000 (00:32 +0000)
committerzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Sat, 13 Jun 2009 00:32:40 +0000 (00:32 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@2225 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/target/target.c

index 6b8f3a0cad0dffc8e4b46e0b31fc23173bee4ab0..b8ee7ab937d93c5747346310795517dce5aa10f5 100644 (file)
@@ -323,8 +323,6 @@ void target_buffer_set_u8(target_t *target, u8 *buffer, u8 value)
 target_t *get_target(const char *id)
 {
        target_t *target;
-       char *endptr;
-       int num;
 
        /* try as tcltarget name */
        for (target = all_targets; target; target = target->next) {
@@ -335,12 +333,12 @@ target_t *get_target(const char *id)
        }
 
        /* no match, try as number */
-       num = strtoul(id, &endptr, 0);
-       if (*endptr != 0)
+       unsigned num;
+       if (parse_uint(id, &num) != ERROR_OK)
                return NULL;
 
        for (target = all_targets; target; target = target->next) {
-               if (target->target_number == num)
+               if (target->target_number == (int)num)
                        return target;
        }