Skip to content

Commit

Permalink
Merge pull request #239 from tklengyel/check_returns
Browse files Browse the repository at this point in the history
Check returns at more places
  • Loading branch information
tklengyel authored Jan 16, 2017
2 parents 4095577 + 6a897ea commit 7a79990
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 5 deletions.
3 changes: 2 additions & 1 deletion src/libdrakvuf/linux-processes.c
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,8 @@ addr_t linux_get_current_process(drakvuf_t drakvuf, uint64_t vcpu_id) {
if ( VMI_FAILURE == vmi_read_addr(vmi, &ctx, &process) || process < MIN_KERNEL_BOUNDARY )
{
ctx.addr = drakvuf->kpcr[vcpu_id] & ~STACK_SIZE_8K;
vmi_read_addr(vmi, &ctx, &process);
if ( VMI_FAILURE == vmi_read_addr(vmi, &ctx, &process) || process < MIN_KERNEL_BOUNDARY )
process = 0;
}
}

Expand Down
15 changes: 11 additions & 4 deletions src/plugins/filetracer/filetracer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -293,9 +293,12 @@ static event_response_t cb(drakvuf_t drakvuf, drakvuf_trap_info_t *info) {
tag = info->regs->r8;
} else {
ctx.addr = info->regs->rsp+8;
vmi_read_32(vmi, &ctx, (uint32_t*)&size);
if ( VMI_FAILURE == vmi_read_32(vmi, &ctx, (uint32_t*)&size) )
return 0;

ctx.addr = info->regs->rsp+12;
vmi_read_32(vmi, &ctx, (uint32_t*)&tag);
if ( VMI_FAILURE == vmi_read_32(vmi, &ctx, (uint32_t*)&tag) )
return 0;
}

/*printf("Got a heap alloc request for tag %c%c%c%c!\n",
Expand All @@ -309,7 +312,9 @@ static event_response_t cb(drakvuf_t drakvuf, drakvuf_trap_info_t *info) {

addr_t ret, ret_pa;
ctx.addr = info->regs->rsp;
vmi_read_addr(vmi, &ctx, &ret);
if ( VMI_FAILURE == vmi_read_addr(vmi, &ctx, &ret) )
return 0;

ret_pa = vmi_pagetable_lookup(vmi, info->regs->cr3, ret);

struct rettrap_struct *s = (struct rettrap_struct*)g_hash_table_lookup(f->rettraps, &ret_pa);
Expand All @@ -330,7 +335,9 @@ static event_response_t cb(drakvuf_t drakvuf, drakvuf_trap_info_t *info) {
rettrap->cb = pool_alloc_return;
rettrap->data = s;

drakvuf_add_trap(drakvuf, rettrap);
if (!drakvuf_add_trap(drakvuf, rettrap))
return 0;

g_hash_table_insert(f->rettraps, &rettrap->breakpoint.addr, s);
}

Expand Down

0 comments on commit 7a79990

Please sign in to comment.