Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--agent/machine/x86_64/tcf/cpudefs-mdep.c2
-rw-r--r--agent/tcf/services/symbols_elf.c2
-rw-r--r--server/tcf/services/context-proxy.c6
3 files changed, 5 insertions, 5 deletions
diff --git a/agent/machine/x86_64/tcf/cpudefs-mdep.c b/agent/machine/x86_64/tcf/cpudefs-mdep.c
index 85720def..55838280 100644
--- a/agent/machine/x86_64/tcf/cpudefs-mdep.c
+++ b/agent/machine/x86_64/tcf/cpudefs-mdep.c
@@ -978,7 +978,7 @@ int crawl_stack_frame(StackFrame * frame, StackFrame * down) {
if (reg == pc_def || reg == sp_def || reg == bp_def) continue;
if (reg->dwarf_id < 32 && (reg_mask & ((uint32_t)1 << reg->dwarf_id))) continue;
if (context_read_reg(ctx, reg, 0, reg->size, buf) < 0) continue;
- write_reg_bytes(down, reg, 0, reg->size, buf);
+ if (write_reg_bytes(down, reg, 0, reg->size, buf) < 0) return -1;
}
}
}
diff --git a/agent/tcf/services/symbols_elf.c b/agent/tcf/services/symbols_elf.c
index c2cedbe3..febfb23d 100644
--- a/agent/tcf/services/symbols_elf.c
+++ b/agent/tcf/services/symbols_elf.c
@@ -3456,7 +3456,7 @@ int get_symbol_size(const Symbol * sym, ContextAddress * size) {
if (sym->dimension == 0) {
ELF_SymbolInfo info;
unpack_elf_symbol_info(sym->tbl, sym->index, &info);
- if (IS_PPC64_FUNC_OPD(sym->tbl->file, &info)) {
+ if (IS_PPC64_FUNC_OPD(sym->tbl->file, &info) && info.name != NULL) {
/*
* For PPC64, the size of an ELF symbol is either the size
* described by the .<name> symbol or, if this symbol does not
diff --git a/server/tcf/services/context-proxy.c b/server/tcf/services/context-proxy.c
index 944f848f..483fd221 100644
--- a/server/tcf/services/context-proxy.c
+++ b/server/tcf/services/context-proxy.c
@@ -1706,7 +1706,7 @@ static ContextCache * get_memory_map_cache(Context * ctx) {
assert(cache->ctx == ctx);
if (!set_trap(&trap)) return NULL;
if (is_channel_closed(c)) exception(ERR_CHANNEL_CLOSED);
- if (cache->peer != NULL && !cache->peer->rc_done) cache_wait(&cache->peer->rc_cache);
+ if (!cache->peer->rc_done) cache_wait(&cache->peer->rc_cache);
if (cache->pending_get_mmap != NULL) cache_wait(&cache->mmap_cache);
if (cache->mmap_is_valid == 0 && cache->peer != NULL) {
@@ -2264,12 +2264,12 @@ int context_get_isa(Context * ctx, ContextAddress addr, ContextISA * isa) {
}
#endif
-static void channel_close_listener(Channel * c) {
+static void channel_close_listener(Channel * ch) {
LINK * l = NULL;
for (l = peers.next; l != &peers; l = l->next) {
PeerCache * p = peers2peer(l);
- if (p->target == c) {
+ if (p->target == ch) {
int i;
assert(p->rc_pending_cnt == 0);
for (i = 0; i < CTX_ID_HASH_SIZE; i++) {

Back to the top