list_del(&fi->list);
destroy_func_inst_data(fi);
}
+ kfree(li);
free_path:
put_string(path);
if (get_u32(mb, &cnt_func)) {
print_err("failed to read count of functions\n");
- goto err;
+ goto free_app_inst;
}
print_parse_debug("func count:%d", cnt_func);
if (remained_mb(mb) / MIN_SIZE_FUNC_INST < cnt_func) {
print_err("to match count of functions(%u)\n", cnt_func);
- goto err;
+ goto free_app_inst;
}
if (cnt_func) {
destroy_func_inst_data(func);
}
+free_app_inst:
+ put_string(app_inst->path);
+ put_string(app_inst->id);
+
err:
kfree(app_inst);
if (files_cnt == 0) {
printk(PRELOAD_PREFIX "Cannot read binaries names!\n");
ret = 0;
- goto bin_list_read_out;
+ goto bin_list_read_fail;
}
for (i = 0; i < files_cnt; i++)
/* jump only if caller is instumented and it is not a system lib -
* this leads to some errors */
- if (((cvma->vm_file != NULL) &&
+ if ((cvma != NULL) && ((cvma->vm_file != NULL) &&
(cvma->vm_file->f_path.dentry != NULL) &&
!preload_control_check_dentry_is_ignored(cvma->vm_file->f_path.dentry)) &&
__check_flag_and_call_type(ip, ct) &&
offset = img_ip->addr & PAGE_MASK;
page = sspt_find_page_or_new(file, offset);
+ if (!page)
+ return;
/* FIXME: delete ip */
ip = create_ip(img_ip);