diff options
Diffstat (limited to 'src/server')
-rw-r--r-- | src/server/gdb_server.c | 8 | ||||
-rw-r--r-- | src/server/server.c | 3 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c index 6ad95bd..ecf46ad 100644 --- a/src/server/gdb_server.c +++ b/src/server/gdb_server.c @@ -3113,7 +3113,13 @@ static int gdb_target_add_one(struct target *target) if (!*end) { if (parse_long(gdb_port_next, &portnumber) == ERROR_OK) { free(gdb_port_next); - gdb_port_next = alloc_printf("%d", portnumber+1); + if (portnumber) { + gdb_port_next = alloc_printf("%d", portnumber+1); + } else { + /* Don't increment if gdb_port is 0, since we're just + * trying to allocate an unused port. */ + gdb_port_next = alloc_printf("0"); + } } } } diff --git a/src/server/server.c b/src/server/server.c index 65da53f..99bdc35 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -273,7 +273,8 @@ int add_service(char *name, c->sin.sin_port = htons(c->portnumber); if (bind(c->fd, (struct sockaddr *)&c->sin, sizeof(c->sin)) == -1) { - LOG_ERROR("couldn't bind %s to socket: %s", name, strerror(errno)); + LOG_ERROR("couldn't bind %s to socket on port %d: %s", name, + c->portnumber, strerror(errno)); close_socket(c->fd); free_service(c); return ERROR_FAIL; |